From 561d28145fdf38cf37a66d08b96c270d4de9db25 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Mon, 1 Feb 2021 10:35:43 +0530 Subject: [PATCH 01/34] Added searchbar for Environment --- .../environments/environment.action.ts | 37 ++++++++++++++- .../environments/environment.effects.ts | 25 ++++++++++- .../environments/environment.reducer.ts | 15 +++++++ .../environments/environment.requests.ts | 16 ++++++- .../environments/environment.selectors.ts | 5 +++ .../environments/environments.component.html | 1 + .../environments/environments.component.ts | 38 ++++++++++++++-- .../modules/infra-proxy/infra-proxy.module.ts | 4 +- .../search-bar-environments.component.html | 17 +++++++ .../search-bar-environments.component.scss | 36 +++++++++++++++ .../search-bar-environments.component.spec.ts | 25 +++++++++++ .../search-bar-environments.component.ts | 45 +++++++++++++++++++ 12 files changed, 256 insertions(+), 8 deletions(-) create mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html create mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss create mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts create mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts diff --git a/components/automate-ui/src/app/entities/environments/environment.action.ts b/components/automate-ui/src/app/entities/environments/environment.action.ts index c9a56c4bd92..7e427519ab9 100644 --- a/components/automate-ui/src/app/entities/environments/environment.action.ts +++ b/components/automate-ui/src/app/entities/environments/environment.action.ts @@ -8,7 +8,10 @@ export enum EnvironmentActionTypes { GET_ALL_FAILURE = 'ENVIRONMENTS::GET_ALL::FAILURE', GET = 'ENVIRONMENTS::GET', GET_SUCCESS = 'ENVIRONMENTS::GET::SUCCESS', - GET_FAILURE = 'ENVIRONMENTS::GET::FAILURE' + GET_FAILURE = 'ENVIRONMENTS::GET::FAILURE', + SEARCH = 'ENVIRONMENTS::SEARCH', + SEARCH_SUCCESS = 'ENVIRONMENTS::SEARCH::SUCCESS', + SEARCH_FAILURE = 'ENVIRONMENTS::SEARCH::FAILURE' } export interface EnvironmentsSuccessPayload { @@ -45,10 +48,40 @@ export class GetEnvironmentFailure implements Action { constructor(public payload: HttpErrorResponse) { } } +export interface EnvironmentSearchPayload { + environmentId: string; + server_id: string; + org_id: string; + name: string; + query: string; +} + +export class EnvironmentSearch implements Action { + readonly type = EnvironmentActionTypes.SEARCH; + constructor(public payload: EnvironmentSearchPayload) { } +} + +export interface EnvironmentSearchSuccessPayload { + environments: Environment[]; +} + +export class EnvironmentSearchSuccess implements Action { + readonly type = EnvironmentActionTypes.SEARCH_SUCCESS; + constructor(public payload: EnvironmentSearchSuccessPayload) { } +} + +export class EnvironmentSearchFailure implements Action { + readonly type = EnvironmentActionTypes.SEARCH_FAILURE; + constructor(public payload: HttpErrorResponse) { } +} + export type EnvironmentActions = | GetEnvironments | GetEnvironmentsSuccess | GetEnvironmentsFailure | GetEnvironment | GetEnvironmentSuccess - | GetEnvironmentFailure; + | GetEnvironmentFailure + | EnvironmentSearch + | EnvironmentSearchSuccess + | EnvironmentSearchFailure; diff --git a/components/automate-ui/src/app/entities/environments/environment.effects.ts b/components/automate-ui/src/app/entities/environments/environment.effects.ts index 7a8523c1b65..43e4a0cb75f 100644 --- a/components/automate-ui/src/app/entities/environments/environment.effects.ts +++ b/components/automate-ui/src/app/entities/environments/environment.effects.ts @@ -14,7 +14,10 @@ import { EnvironmentActionTypes, GetEnvironment, GetEnvironmentSuccess, - GetEnvironmentFailure + GetEnvironmentFailure, + EnvironmentSearch, + EnvironmentSearchSuccess, + EnvironmentSearchFailure } from './environment.action'; import { EnvironmentRequests } from './environment.requests'; @@ -65,4 +68,24 @@ export class EnvironmentEffects { message: `Could not get environment: ${msg || payload.error}` }); })); + + @Effect() + getEnvironmentSearch$ = this.actions$.pipe( + ofType(EnvironmentActionTypes.SEARCH), + mergeMap((action: EnvironmentSearch) => + this.requests.getEnvironmentSearch(action.payload).pipe( + map((resp) => new EnvironmentSearchSuccess(resp)), + catchError((error: HttpErrorResponse) => + observableOf(new EnvironmentSearchFailure(error)))))); + + @Effect() + getClientSearchFailure$ = this.actions$.pipe( + ofType(EnvironmentActionTypes.SEARCH_FAILURE), + map(({ payload }: EnvironmentSearchFailure) => { + const msg = payload.error.error; + return new CreateNotification({ + type: Type.error, + message: `Could not get infra Environment details: ${msg || payload.error}` + }); + })); } diff --git a/components/automate-ui/src/app/entities/environments/environment.reducer.ts b/components/automate-ui/src/app/entities/environments/environment.reducer.ts index f290f5733bf..aa7028d1fcc 100644 --- a/components/automate-ui/src/app/entities/environments/environment.reducer.ts +++ b/components/automate-ui/src/app/entities/environments/environment.reducer.ts @@ -7,9 +7,11 @@ import { Environment } from './environment.model'; export interface EnvironmentEntityState extends EntityState { environmentsStatus: EntityStatus; getAllStatus: EntityStatus; + getSearchStatus: EntityStatus; } const GET_ALL_STATUS = 'getAllStatus'; +const GET_SEARCH_STATUS = 'getSearchStatus'; export const environmentEntityAdapter: EntityAdapter = createEntityAdapter({ @@ -38,6 +40,19 @@ export function environmentEntityReducer( case EnvironmentActionTypes.GET_ALL_FAILURE: return set(GET_ALL_STATUS, EntityStatus.loadingFailure, state); + case EnvironmentActionTypes.SEARCH: + return set(GET_SEARCH_STATUS, EntityStatus.loading, environmentEntityAdapter + .removeAll(state)); + + case EnvironmentActionTypes.SEARCH_SUCCESS: + return pipe( + set(GET_SEARCH_STATUS, EntityStatus.loadingSuccess)) + (environmentEntityAdapter + .setAll(action.payload.environments, state)) as EnvironmentEntityState; + + case EnvironmentActionTypes.SEARCH_FAILURE: + return set(GET_SEARCH_STATUS, EntityStatus.loadingFailure, state); + default: return state; } diff --git a/components/automate-ui/src/app/entities/environments/environment.requests.ts b/components/automate-ui/src/app/entities/environments/environment.requests.ts index 40b5ce40ec2..c808f43ca95 100644 --- a/components/automate-ui/src/app/entities/environments/environment.requests.ts +++ b/components/automate-ui/src/app/entities/environments/environment.requests.ts @@ -2,12 +2,17 @@ import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable } from 'rxjs'; import { environment as env } from 'environments/environment'; -import { EnvironmentsSuccessPayload } from './environment.action'; +import { EnvironmentsSuccessPayload, EnvironmentSearchPayload } from './environment.action'; import { Environment } from './environment.model'; import { InterceptorSkipHeader } from 'app/services/http/http-client-auth.interceptor'; const headers = new HttpHeaders().set(InterceptorSkipHeader, ''); +export interface EnvironmentSearchResponse { + environments: any[]; + total: number; +} + @Injectable() export class EnvironmentRequests { @@ -24,4 +29,13 @@ export class EnvironmentRequests { return this.http.get( `${env.infra_proxy_url}/servers/${server_id}/orgs/${org_id}/environments/${name}`, {headers}); } + + // ?search_query.q=name:node-* + public getEnvironmentSearch(payload: EnvironmentSearchPayload) + : Observable { + return this.http.get( + `${env.infra_proxy_url}/servers/${payload.server_id}/orgs/${payload.org_id}/environments?search_query.${payload.query}=name:${payload.environmentId}*`, + {headers} + ); + } } diff --git a/components/automate-ui/src/app/entities/environments/environment.selectors.ts b/components/automate-ui/src/app/entities/environments/environment.selectors.ts index c4d49209e99..360b6add23a 100644 --- a/components/automate-ui/src/app/entities/environments/environment.selectors.ts +++ b/components/automate-ui/src/app/entities/environments/environment.selectors.ts @@ -16,3 +16,8 @@ export const getAllStatus = createSelector( environmentState, (state) => state.getAllStatus ); + +export const getSearchStatus = createSelector( + environmentState, + (state) => state.getSearchStatus +); diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index 40374849392..cb90f2e516e 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -2,6 +2,7 @@ + diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index d76b63e92cc..4226e9bb1b3 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -3,15 +3,16 @@ import { Store } from '@ngrx/store'; import { combineLatest, Subject } from 'rxjs'; import { NgrxStateAtom } from 'app/ngrx.reducers'; import { LayoutFacadeService, Sidebar } from 'app/entities/layout/layout.facade'; -import { takeUntil } from 'rxjs/operators'; +import { filter, takeUntil } from 'rxjs/operators'; import { isNil } from 'lodash/fp'; import { EntityStatus } from 'app/entities/entities'; -import { GetEnvironments } from 'app/entities/environments/environment.action'; +import { GetEnvironments, EnvironmentSearch } from 'app/entities/environments/environment.action'; import { Environment } from 'app/entities/environments/environment.model'; import { allEnvironments, - getAllStatus as getAllEnvironmentsForOrgStatus + getAllStatus as getAllEnvironmentsForOrgStatus, + getSearchStatus } from 'app/entities/environments/environment.selectors'; @@ -30,6 +31,8 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { public environments: Environment[] = []; public environmentsListLoading = true; public authFailure = false; + public environmentsSearch: Environment[]; + public environmentsName: string; constructor( private store: Store, @@ -56,12 +59,41 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { this.authFailure = true; } }); + + combineLatest([ + this.store.select(getSearchStatus), + this.store.select(allEnvironments), + ]).pipe( + filter(([getEnvironmentsSt, _EnvironmentsState]) => + getEnvironmentsSt === EntityStatus.loadingSuccess), + filter(([_getEnvironmentsSt, EnvironmentsState]) => + !isNil(EnvironmentsState)), + takeUntil(this.isDestroyed)) + .subscribe(([_getEnvironmentsSt, EnvironmentsState]) => { + this.environmentsSearch = EnvironmentsState; + }); } resetKeyTabRedirection(resetLink: boolean) { this.resetKeyRedirection.emit(resetLink); } + toggleFilters(currentText: string) { + if(currentText) { + const payload = { + environmentId: currentText, + page: 0, + per_page: 20, + server_id: this.serverId, + org_id: this.orgId, + name: this.environmentsName, + query: 'q' + }; + this.store.dispatch(new EnvironmentSearch(payload)); + } + } + + ngOnDestroy(): void { this.isDestroyed.next(true); this.isDestroyed.complete(); diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts b/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts index 54b6121713f..42e37722911 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts @@ -26,6 +26,7 @@ import { PolicyFilesComponent } from './policy-files/policy-files.component'; import { ResetAdminKeyComponent } from './reset-admin-key/reset-admin-key.component'; import { TreeTableModule } from './tree-table/tree-table.module'; import { EmptyStateComponent } from './empty-state/empty-state.component'; +import { SearchBarEnvironmentsComponent } from './search-bar-environments/search-bar-environments.component'; @NgModule({ declarations: [ @@ -48,7 +49,8 @@ import { EmptyStateComponent } from './empty-state/empty-state.component'; OrgDetailsComponent, OrgEditComponent, PolicyFilesComponent, - ResetAdminKeyComponent + ResetAdminKeyComponent, + SearchBarEnvironmentsComponent ], imports: [ CommonModule, diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html new file mode 100644 index 00000000000..74759d103f9 --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html @@ -0,0 +1,17 @@ +
+
+ + +
+
diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss new file mode 100644 index 00000000000..5dcc2a3ccd6 --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss @@ -0,0 +1,36 @@ +@import "~styles/variables"; +@import "~styles/mixins"; + +.search-wrapper { + width: 100%; + font-size: 1em; + color: $chef-primary-dark; + padding-bottom: 25px; +} + +.search-input-wrapper { + position: relative; + .search-button { + box-shadow: 0 1px 14px #E6EBEE; + border: 1px solid #E5E5E5; + border-left: none; + border-radius: 0px 4px 4px 0px; + background: #E6EBEE; + width: 45px; + height: 43px; + position: absolute; + right: 1px; + top: 1px; + } + + .chef-input { + border-radius: 4px 0px 0px 4px; + // border-right: none; + width: 100%; + } + + .search-items { + margin-bottom: 25px; + width: 100%; + } +} \ No newline at end of file diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts new file mode 100644 index 00000000000..7bd345c7242 --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SearchBarEnvironmentsComponent } from './search-bar-environments.component'; + +describe('SearchBarEnvironmentsComponent', () => { + let component: SearchBarEnvironmentsComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ SearchBarEnvironmentsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(SearchBarEnvironmentsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts new file mode 100644 index 00000000000..6061687dfeb --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts @@ -0,0 +1,45 @@ +import { + Component, + EventEmitter, + Output, + OnInit, + ViewChild, + ElementRef, +} from '@angular/core'; + +@Component({ + selector: 'app-search-bar-environments', + templateUrl: './search-bar-environments.component.html', + styleUrls: ['./search-bar-environments.component.scss'] +}) +export class SearchBarEnvironmentsComponent implements OnInit { + inputText= ''; + + @Output() searchButtonClick: EventEmitter = new EventEmitter(); + @ViewChild('search_box', { static: true }) inputField: ElementRef; + + ngOnInit(): void { + } + + handleFiltersClick(currentText: string): void { + console.log(currentText); + this.searchButtonClick.emit(currentText); + } + + pressEnter(currentText: string): void { + console.log(currentText); + this.searchButtonClick.emit(currentText); + } + + handleInput(key, currentText): void { + switch (key.toLowerCase()) { + case 'enter': + this.pressEnter(currentText); + break; + } + } + + getFilterText(): string { + return 'Search Environments'; + } +} From f8c6ff71a9f8429deb560fbd790b2fa319599cb8 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Mon, 1 Feb 2021 20:14:48 +0530 Subject: [PATCH 02/34] added to search bar --- .../src/app/entities/environments/environment.effects.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/components/automate-ui/src/app/entities/environments/environment.effects.ts b/components/automate-ui/src/app/entities/environments/environment.effects.ts index 43e4a0cb75f..736ec44ac11 100644 --- a/components/automate-ui/src/app/entities/environments/environment.effects.ts +++ b/components/automate-ui/src/app/entities/environments/environment.effects.ts @@ -17,6 +17,7 @@ import { GetEnvironmentFailure, EnvironmentSearch, EnvironmentSearchSuccess, + EnvironmentSearchSuccessPayload, EnvironmentSearchFailure } from './environment.action'; @@ -74,12 +75,12 @@ export class EnvironmentEffects { ofType(EnvironmentActionTypes.SEARCH), mergeMap((action: EnvironmentSearch) => this.requests.getEnvironmentSearch(action.payload).pipe( - map((resp) => new EnvironmentSearchSuccess(resp)), + map((resp: EnvironmentSearchSuccessPayload) => new EnvironmentSearchSuccess(resp)), catchError((error: HttpErrorResponse) => observableOf(new EnvironmentSearchFailure(error)))))); @Effect() - getClientSearchFailure$ = this.actions$.pipe( + getEnvironmentSearchFailure$ = this.actions$.pipe( ofType(EnvironmentActionTypes.SEARCH_FAILURE), map(({ payload }: EnvironmentSearchFailure) => { const msg = payload.error.error; From b49b73c4a8a5278b6593b5c7c795391a78030465 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Tue, 2 Feb 2021 16:14:44 +0530 Subject: [PATCH 03/34] Change name Searchbar component --- .../environments/environment.effects.ts | 2 +- .../environments/environment.requests.ts | 1 - .../environments/environments.component.html | 2 +- .../environments/environments.component.ts | 8 ++-- .../modules/infra-proxy/infra-proxy.module.ts | 7 +-- .../infra-search-bar.component.html | 16 +++++++ .../infra-search-bar.component.scss | 41 +++++++++++++++++ .../infra-search-bar.component.spec.ts | 25 +++++++++++ .../infra-search-bar.component.ts | 44 +++++++++++++++++++ 9 files changed, 136 insertions(+), 10 deletions(-) create mode 100644 components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.html create mode 100644 components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss create mode 100644 components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.spec.ts create mode 100644 components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts diff --git a/components/automate-ui/src/app/entities/environments/environment.effects.ts b/components/automate-ui/src/app/entities/environments/environment.effects.ts index 736ec44ac11..cb6697608d0 100644 --- a/components/automate-ui/src/app/entities/environments/environment.effects.ts +++ b/components/automate-ui/src/app/entities/environments/environment.effects.ts @@ -78,7 +78,7 @@ export class EnvironmentEffects { map((resp: EnvironmentSearchSuccessPayload) => new EnvironmentSearchSuccess(resp)), catchError((error: HttpErrorResponse) => observableOf(new EnvironmentSearchFailure(error)))))); - + @Effect() getEnvironmentSearchFailure$ = this.actions$.pipe( ofType(EnvironmentActionTypes.SEARCH_FAILURE), diff --git a/components/automate-ui/src/app/entities/environments/environment.requests.ts b/components/automate-ui/src/app/entities/environments/environment.requests.ts index c808f43ca95..b8f1285fef1 100644 --- a/components/automate-ui/src/app/entities/environments/environment.requests.ts +++ b/components/automate-ui/src/app/entities/environments/environment.requests.ts @@ -30,7 +30,6 @@ export class EnvironmentRequests { `${env.infra_proxy_url}/servers/${server_id}/orgs/${org_id}/environments/${name}`, {headers}); } - // ?search_query.q=name:node-* public getEnvironmentSearch(payload: EnvironmentSearchPayload) : Observable { return this.http.get( diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index cb90f2e516e..39e2e94f1da 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -2,7 +2,7 @@ - + diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index 4226e9bb1b3..e459cc5907d 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -62,7 +62,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { combineLatest([ this.store.select(getSearchStatus), - this.store.select(allEnvironments), + this.store.select(allEnvironments) ]).pipe( filter(([getEnvironmentsSt, _EnvironmentsState]) => getEnvironmentsSt === EntityStatus.loadingSuccess), @@ -79,15 +79,15 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { } toggleFilters(currentText: string) { - if(currentText) { + if (currentText) { const payload = { environmentId: currentText, page: 0, per_page: 20, server_id: this.serverId, org_id: this.orgId, - name: this.environmentsName, - query: 'q' + name: this.environmentsName, + query: 'q' }; this.store.dispatch(new EnvironmentSearch(payload)); } diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts b/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts index 42e37722911..1d6c9f09138 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts @@ -19,6 +19,7 @@ import { EnvironmentsComponent } from './environments/environments.component'; import { EnvironmentDetailsComponent } from './environment-details/environment-details.component'; import { InfraRolesComponent } from './infra-roles/infra-roles.component'; import { InfraRoleDetailsComponent } from './infra-role-details/infra-role-details.component'; +import { InfraSearchBarComponent } from './infra-search-bar/infra-search-bar.component'; import { JsonTreeTableComponent } from './json-tree-table/json-tree-table.component'; import { OrgDetailsComponent } from './org-details/org-details.component'; import { OrgEditComponent } from './org-edit/org-edit.component'; @@ -26,7 +27,7 @@ import { PolicyFilesComponent } from './policy-files/policy-files.component'; import { ResetAdminKeyComponent } from './reset-admin-key/reset-admin-key.component'; import { TreeTableModule } from './tree-table/tree-table.module'; import { EmptyStateComponent } from './empty-state/empty-state.component'; -import { SearchBarEnvironmentsComponent } from './search-bar-environments/search-bar-environments.component'; + @NgModule({ declarations: [ @@ -46,11 +47,11 @@ import { SearchBarEnvironmentsComponent } from './search-bar-environments/search JsonTreeTableComponent, InfraRolesComponent, InfraRoleDetailsComponent, + InfraSearchBarComponent, OrgDetailsComponent, OrgEditComponent, PolicyFilesComponent, - ResetAdminKeyComponent, - SearchBarEnvironmentsComponent + ResetAdminKeyComponent ], imports: [ CommonModule, diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.html b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.html new file mode 100644 index 00000000000..dec03161db6 --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.html @@ -0,0 +1,16 @@ +
+
+ + +
+
diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss new file mode 100644 index 00000000000..90e388151e6 --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss @@ -0,0 +1,41 @@ +@import "~styles/variables"; +@import "~styles/mixins"; + +.search-wrapper { + width: 100%; + font-size: 1em; + color: $chef-primary-dark; + padding-bottom: 25px; +} + +.search-input-wrapper { + position: relative; + + .search-button { + box-shadow: 0 1px 14px #E6EBEE; + border: 1px solid #E5E5E5; + border-left: none; + border-radius: 0px 4px 4px 0px; + background: #E6EBEE; + width: 45px; + height: 43px; + position: absolute; + right: 1px; + top: 1px; + } + + .chef-input { + border-radius: 4px 0px 0px 4px; + // border-right: none; + width: 100%; + } + + .search-items { + margin-bottom: 25px; + width: 100%; + } +} + +.hidden-label { + padding: 0; +} diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.spec.ts b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.spec.ts new file mode 100644 index 00000000000..47dc386c10d --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { InfraSearchBarComponent } from './infra-search-bar.component'; + +describe('SearchBarEnvironmentsComponent', () => { + let component: InfraSearchBarComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ InfraSearchBarComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(InfraSearchBarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts new file mode 100644 index 00000000000..1e0b3b184ab --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts @@ -0,0 +1,44 @@ +import { + Component, + EventEmitter, + Output, + OnInit, + ViewChild, + ElementRef, + Input +} from '@angular/core'; + +@Component({ + selector: 'app-infra-search-bar', + templateUrl: './infra-search-bar.component.html', + styleUrls: ['./infra-search-bar.component.scss'] +}) + +export class InfraSearchBarComponent implements OnInit { + inputText = ''; + @Input() placeHolder: string; + @Output() searchButtonClick: EventEmitter = new EventEmitter(); + @ViewChild('search_box', { static: true }) inputField: ElementRef; + + ngOnInit() {} + + handleFiltersClick(currentText: string): void { + this.searchButtonClick.emit(currentText); + } + + pressEnter(currentText: string): void { + this.searchButtonClick.emit(currentText); + } + + handleInput(key, currentText): void { + switch (key.toLowerCase()) { + case 'enter': + this.pressEnter(currentText); + break; + } + } + + getFilterText(): string { + return 'Search ' + this.placeHolder; + } +} From 22f70839042b7a014bc7ea3e7ef8f1cf874eaec8 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Tue, 2 Feb 2021 16:15:07 +0530 Subject: [PATCH 04/34] Removed component --- .../search-bar-environments.component.html | 17 ------- .../search-bar-environments.component.scss | 36 --------------- .../search-bar-environments.component.spec.ts | 25 ----------- .../search-bar-environments.component.ts | 45 ------------------- 4 files changed, 123 deletions(-) delete mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html delete mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss delete mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts delete mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html deleted file mode 100644 index 74759d103f9..00000000000 --- a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html +++ /dev/null @@ -1,17 +0,0 @@ -
-
- - -
-
diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss deleted file mode 100644 index 5dcc2a3ccd6..00000000000 --- a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss +++ /dev/null @@ -1,36 +0,0 @@ -@import "~styles/variables"; -@import "~styles/mixins"; - -.search-wrapper { - width: 100%; - font-size: 1em; - color: $chef-primary-dark; - padding-bottom: 25px; -} - -.search-input-wrapper { - position: relative; - .search-button { - box-shadow: 0 1px 14px #E6EBEE; - border: 1px solid #E5E5E5; - border-left: none; - border-radius: 0px 4px 4px 0px; - background: #E6EBEE; - width: 45px; - height: 43px; - position: absolute; - right: 1px; - top: 1px; - } - - .chef-input { - border-radius: 4px 0px 0px 4px; - // border-right: none; - width: 100%; - } - - .search-items { - margin-bottom: 25px; - width: 100%; - } -} \ No newline at end of file diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts deleted file mode 100644 index 7bd345c7242..00000000000 --- a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { SearchBarEnvironmentsComponent } from './search-bar-environments.component'; - -describe('SearchBarEnvironmentsComponent', () => { - let component: SearchBarEnvironmentsComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ SearchBarEnvironmentsComponent ] - }) - .compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(SearchBarEnvironmentsComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts deleted file mode 100644 index 6061687dfeb..00000000000 --- a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { - Component, - EventEmitter, - Output, - OnInit, - ViewChild, - ElementRef, -} from '@angular/core'; - -@Component({ - selector: 'app-search-bar-environments', - templateUrl: './search-bar-environments.component.html', - styleUrls: ['./search-bar-environments.component.scss'] -}) -export class SearchBarEnvironmentsComponent implements OnInit { - inputText= ''; - - @Output() searchButtonClick: EventEmitter = new EventEmitter(); - @ViewChild('search_box', { static: true }) inputField: ElementRef; - - ngOnInit(): void { - } - - handleFiltersClick(currentText: string): void { - console.log(currentText); - this.searchButtonClick.emit(currentText); - } - - pressEnter(currentText: string): void { - console.log(currentText); - this.searchButtonClick.emit(currentText); - } - - handleInput(key, currentText): void { - switch (key.toLowerCase()) { - case 'enter': - this.pressEnter(currentText); - break; - } - } - - getFilterText(): string { - return 'Search Environments'; - } -} From 331f2673f960a0fd60d576308807897a848fe8bd Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Tue, 2 Feb 2021 20:28:17 +0530 Subject: [PATCH 05/34] Added spiner for search function --- .../environments/environment.requests.ts | 2 +- .../environments/environments.component.html | 8 ++++-- .../environments/environments.component.scss | 1 + .../environments/environments.component.ts | 26 +++++++++++++++++-- .../infra-search-bar.component.scss | 1 + .../infra-search-bar.component.ts | 2 +- 6 files changed, 34 insertions(+), 6 deletions(-) diff --git a/components/automate-ui/src/app/entities/environments/environment.requests.ts b/components/automate-ui/src/app/entities/environments/environment.requests.ts index b8f1285fef1..027af364fbd 100644 --- a/components/automate-ui/src/app/entities/environments/environment.requests.ts +++ b/components/automate-ui/src/app/entities/environments/environment.requests.ts @@ -33,7 +33,7 @@ export class EnvironmentRequests { public getEnvironmentSearch(payload: EnvironmentSearchPayload) : Observable { return this.http.get( - `${env.infra_proxy_url}/servers/${payload.server_id}/orgs/${payload.org_id}/environments?search_query.${payload.query}=name:${payload.environmentId}*`, + `${env.infra_proxy_url}/servers/${payload.server_id}/orgs/${payload.org_id}/environments?search_query.${payload.query}=name:*${payload.environmentId}*`, {headers} ); } diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index 39e2e94f1da..e381637aec5 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -2,8 +2,12 @@ - - +
+ +
+ +
No Environments available
+ Environments Name diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss index 560633cf66e..fa94c26a4e4 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss @@ -32,4 +32,5 @@ chef-loading-spinner { margin: 100px auto; width: 100px; z-index: 199; + background: transparent; } diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index e459cc5907d..e291214e0e7 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -33,6 +33,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { public authFailure = false; public environmentsSearch: Environment[]; public environmentsName: string; + public searchItems = false; constructor( private store: Store, @@ -79,17 +80,38 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { } toggleFilters(currentText: string) { + this.searchItems = true; if (currentText) { const payload = { environmentId: currentText, page: 0, - per_page: 20, + per_page: this.environments.length, server_id: this.serverId, org_id: this.orgId, name: this.environmentsName, query: 'q' }; - this.store.dispatch(new EnvironmentSearch(payload)); + combineLatest([ + this.store.select(getSearchStatus), + this.store.select(allEnvironments) + ]).pipe( + filter(([getEnvironmentsSt, _EnvironmentsState]) => + getEnvironmentsSt === EntityStatus.loadingSuccess), + filter(([_getEnvironmentsSt, EnvironmentsState]) => + !isNil(EnvironmentsState)), + takeUntil(this.isDestroyed)) + .subscribe(([_getEnvironmentsSt, EnvironmentsState]) => { + this.environmentsSearch = EnvironmentsState; + }); + this.store.dispatch(new EnvironmentSearch(payload)); + + setTimeout(() => { + this.searchItems = false; + }, 2000); + } else { + this.store.dispatch(new GetEnvironments({ + server_id: this.serverId, org_id: this.orgId + })); } } diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss index 90e388151e6..daa345e4e1e 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss @@ -17,6 +17,7 @@ border-left: none; border-radius: 0px 4px 4px 0px; background: #E6EBEE; + cursor: pointer; width: 45px; height: 43px; position: absolute; diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts index 1e0b3b184ab..ffed3fb4425 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts @@ -30,7 +30,7 @@ export class InfraSearchBarComponent implements OnInit { this.searchButtonClick.emit(currentText); } - handleInput(key, currentText): void { + handleInput(key: string, currentText: string): void { switch (key.toLowerCase()) { case 'enter': this.pressEnter(currentText); From 3aa6c8da08654c6403227a31f946a052d12b2181 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Tue, 2 Feb 2021 22:36:47 +0530 Subject: [PATCH 06/34] Updated style for spinner --- .../infra-proxy/environments/environments.component.html | 2 +- .../infra-proxy/environments/environments.component.scss | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index e381637aec5..a29dc6dbd71 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -5,7 +5,7 @@
- +
No Environments available
diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss index fa94c26a4e4..48f6c9ab6cb 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss @@ -32,5 +32,10 @@ chef-loading-spinner { margin: 100px auto; width: 100px; z-index: 199; - background: transparent; +} + +.full-screen-spinner { + display: flex; + margin: auto; + width: initial; } From 310cbd02c6f2d754eace1ac7a6f69913ee947ac9 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Wed, 3 Feb 2021 17:37:38 +0530 Subject: [PATCH 07/34] updated searchbar --- .../infra-search-bar/infra-search-bar.component.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts index ffed3fb4425..c362a1c5847 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts @@ -2,7 +2,6 @@ import { Component, EventEmitter, Output, - OnInit, ViewChild, ElementRef, Input @@ -14,14 +13,13 @@ import { styleUrls: ['./infra-search-bar.component.scss'] }) -export class InfraSearchBarComponent implements OnInit { +export class InfraSearchBarComponent { inputText = ''; + @Input() placeHolder: string; @Output() searchButtonClick: EventEmitter = new EventEmitter(); @ViewChild('search_box', { static: true }) inputField: ElementRef; - ngOnInit() {} - handleFiltersClick(currentText: string): void { this.searchButtonClick.emit(currentText); } From af4f6e50bbb9aa0d98bae04fde3f26b3d4fb0855 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Mon, 8 Feb 2021 17:09:55 +0530 Subject: [PATCH 08/34] No data for searchbar updated --- .../environments/environments.component.html | 5 ++++- .../environments/environments.component.scss | 9 +++++++++ .../environments/environments.component.ts | 2 ++ .../automate-ui/src/assets/img/no_preview.gif | Bin 0 -> 702003 bytes 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 components/automate-ui/src/assets/img/no_preview.gif diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index a29dc6dbd71..52edae8c8ab 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -6,7 +6,10 @@ -
No Environments available
+
+ No preview +

No results found for "{{searchText}}".

+
diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss index 48f6c9ab6cb..a6ba64a3baf 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss @@ -39,3 +39,12 @@ chef-loading-spinner { margin: auto; width: initial; } + +.empty-section { + margin-top: 50px; + text-align: center; +} + +img { + width: 122px; +} diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index e291214e0e7..6cd94d41e8d 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -34,6 +34,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { public environmentsSearch: Environment[]; public environmentsName: string; public searchItems = false; + public searchText: string; constructor( private store: Store, @@ -82,6 +83,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { toggleFilters(currentText: string) { this.searchItems = true; if (currentText) { + this.searchText = currentText; const payload = { environmentId: currentText, page: 0, diff --git a/components/automate-ui/src/assets/img/no_preview.gif b/components/automate-ui/src/assets/img/no_preview.gif new file mode 100644 index 0000000000000000000000000000000000000000..f14c050e445f1a6cd41d0b2ede90e98d189a5802 GIT binary patch literal 702003 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%0DhOXy%k(IuekoaGFG3B5CJ= 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

_zpQpKyZ-uu?Oqi#>o4Mc$^D{V3fQ`7 z%a?0t-rHN4X}`d_tBNlZy_;rHyx z(IB*NG0)jq?6Q`2;Hv$pc6P0{EQ&H04>eFTvr;!ti1`J`p05V?8HhGZCS8{kQn~UN zXUt-GJ<%bjSQtNL%4<8lz*U{~zSc^LqHv*|2tst-0An4>`+D`+C)mqkPt^70H15*22-P4=gcN^7>;ums{j?h+$q*1%8b!U9#^gynLOG&_q=YR28 z9K;w?i(*#Az9&OLA%hZkh=i=!4)MWHLFxN^GpC(2McQh~i@Lm%l+RA&sO?{Iy!)1a z)b!nlk|c)cPC-_Nonv|F`)#6!6K`tVB1@#^9_!?Xk^ud{);I>Z zR@mPb-aKdXrBZ`)a30aIszHbqp<9-AXK-;4)yZ;H)0o|E6l}<4c-f|T@52)bIO@0N zK+bNVH<@=_iJe}0$gI%yr^B0JCXL_vN7ZLZ?K>zh6KWz~v74NhlU|3!;US;XahG1! zS6`=Jbqez7UIBLGpBWYg#?(ax=lO#b^mw;~!hcwRL@=tSNBr-FLglo>2mB$ZxJOib zPs#YfL`Nz?k^Y=+5d!>B=0WAb92Sy2rJ~qt-aD)kii$b0N>=u4vWi!VzYxleKiHHm zaN&-P9~PrNxdwAC_3v_2qw@C~B@--&%rqgJNp8pmz@YebLbp}_5(Vr&bP_DO5B3|U->KZ8HLpY2}64t=mIpW0G-te`(6 zBktM&LwvxVl3lzg+XZK&o1}(m?ChpjYF>P@ERnvx7#}Jce;mIm10C*^RzDKW9*THcq{;A!@otGDvLL3H67{vbO=M!=YNY$|LpQgCU`Gf~o+JVR=WIzz zZegin7Uze@j+7v|TuV2MZ2q$Y>fN1r^2rq>{ zD)O&c3Xu~M*5^}2c@uQ$(keC66g9=RR>XdiAw)p|k2gV&_7GQO2rYObcE|zmhh3Kj z#|R5=;l!!QxmfWcLAer)?wrI&sdSnUR)h2%HdG4BvxAv= z)8(@SWwX1@19YwjVGw&xn+2Ott(oQ?E{7c^b^xeWBj8&wMkUb*T;WRkkp&*{**> zg0-^H3(WH(0#qqnm{!NTxydet%gPQe;w*>cce4o+it3<6o*QiK($G8ZMI!DpC<7J+ zH|?c5#-#Lu^?h)_wGwNdta^K?{rw_pNP(Si?6=k8$)QIT^XVGP`A3&rHv(9%t-BXh zmfVyEjqb5@SluA{$$$b@$jg-G+i*Z*W0VH?{T)p@Wd`&fi~NuYYa%^8_NniDDA(K4 zj}eLYeIZ?SjQK}aa%S{+1=h)0@@EzmiGo+G$IZ-#(t-zsWSlG%m^0%-L$nPmf16bb zA}TdQ7(e?lm(*GTVN{);TDN*CZ4{YK@@3gs1iBU=^hmIf55#-a3%d>yUbjRkL!lU* zS<*~XD3Q5gWeN(a0IFOJreCLLhGLCWZD4Y=azZ{(Vl+6~&~*|)6fFvpL4b+$7-aK2 zP)87Q)9_3Th&~W=m`%g2kRLH0t0Fxjc;J|dcMqjVV$7F`^}J1 zD>$b}y*vsWm_Q3GinEbj-H%u>&D#KTVXd%ID%QUXl&#si83(`X9@t9xc zcjk+dhnD@$B⁣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�m&vOL7n$l&3J>VIrq2O~x=>*VAU&t|Hss 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�WRmD21^mH*<5;fX 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 literal 0 HcmV?d00001 From 8ff135fd67d822c24e99da3eb47e975fd72887ea Mon Sep 17 00:00:00 2001 From: Jay Mundrawala Date: Mon, 8 Feb 2021 09:19:45 -0600 Subject: [PATCH 09/34] Document that ldap/msad bind password can be passed via environment variable (#4680) Signed-off-by: Jay Mundrawala --- components/docs-chef-io/content/automate/ldap.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/components/docs-chef-io/content/automate/ldap.md b/components/docs-chef-io/content/automate/ldap.md index 05b609ae6ea..33bc176a4f4 100644 --- a/components/docs-chef-io/content/automate/ldap.md +++ b/components/docs-chef-io/content/automate/ldap.md @@ -78,6 +78,9 @@ bind_dn bind_password : "your bind_password" + `bind_password` may also be passed via the `AUTOMATE_SECRET_MSAD_PASSWORD` environment + variable when running `chef-automate` commands. + ca_contents : Your certificate authority (CA) certificate contents. You can provide multiple PEM-encoded CA certs. Optional. @@ -495,6 +498,9 @@ See below for the full configuration and additional details about all LDAP confi # users to authenticate for Chef Automate (and also to search for their group membership). # Example: "uid=seviceaccount,cn=users,dc=example,dc=com" bind_dn = "" + + # bind_password may also be passed via the AUTOMATE_SECRET_LDAP_PASSWORD environment + # variable when running `chef-automate` commands. bind_password = "" ### From dc80d3b2105336641ba2648018a19d5fb56d3ae2 Mon Sep 17 00:00:00 2001 From: Jay Mundrawala Date: Mon, 8 Feb 2021 12:17:17 -0600 Subject: [PATCH 10/34] Fix workflow build (#4706) Looks like erlang 18 is no longer supported by parse_trans since https://github.com/uwiger/parse_trans/commit/91f02431e0205df21c2cbfa2de5881b522ef3ff5 Signed-off-by: Jay Mundrawala --- components/automate-workflow-server/rebar.config | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/automate-workflow-server/rebar.config b/components/automate-workflow-server/rebar.config index f21a7011432..490da9fa3cb 100644 --- a/components/automate-workflow-server/rebar.config +++ b/components/automate-workflow-server/rebar.config @@ -94,8 +94,9 @@ {eunit_sugar, ".*", {git, "https://github.com/xenolinguist/eunit_sugar", {branch, "master"}}}, + %% The latest versions of parse_trans no longer work erlang 18 {parse_trans, ".*", - {git, "https://github.com/uwiger/parse_trans.git", {branch, "master"}}}, + {git, "https://github.com/uwiger/parse_trans.git", {tag, "3.3.1"}}}, {eunit_formatters, ".*", {git, "https://github.com/seancribbs/eunit_formatters.git", {branch, "master"}}}, From bc59cdf539d8ca1af5e9b1de0349632544880d4b Mon Sep 17 00:00:00 2001 From: PrajaktaPurohit Date: Mon, 8 Feb 2021 10:49:28 -0800 Subject: [PATCH 11/34] Set data_collector to true only if external automate or local automate is enabled. (#4683) Currently chef-server will not come up if automate is disabled in the dev vm. This happens because data-collector is set to true(enable) by default. This change makes it such that data-collector will be enabled only if external or internal automate are enabled. Co-authored-by: Jay Mundrawala Signed-off-by: Prajakta Purohit --- api/config/erchef/config_request.go | 10 ++++++++ api/config/erchef/config_request_test.go | 31 ++++++++++++++++++++++++ integration/tests/chef_server_only.sh | 6 ----- 3 files changed, 41 insertions(+), 6 deletions(-) diff --git a/api/config/erchef/config_request.go b/api/config/erchef/config_request.go index b9022ae3980..36ce628613b 100644 --- a/api/config/erchef/config_request.go +++ b/api/config/erchef/config_request.go @@ -5,7 +5,9 @@ import ( "strings" ac "github.com/chef/automate/api/config/shared" + config "github.com/chef/automate/api/config/shared" w "github.com/chef/automate/api/config/shared/wrappers" + "github.com/chef/automate/lib/stringutils" ) // NewConfigRequest returns a new instance of ConfigRequest with zero values. @@ -144,3 +146,11 @@ func (c *ConfigRequest) PrepareSystemConfig(creds *ac.TLSCredentials) (ac.Prepar return c.V1.Sys, nil } + +func (c *ConfigRequest) ConfigureProduct(productConfig *config.ProductConfig) { + if len(productConfig.Products) > 0 { + if !c.V1.Sys.GetExternalAutomate().GetEnable().GetValue() && !stringutils.SliceContains(productConfig.Products, "automate") { + c.V1.Sys.DataCollector.Enabled = w.Bool(false) + } + } +} diff --git a/api/config/erchef/config_request_test.go b/api/config/erchef/config_request_test.go index 7bb0ed5fd61..bd73fb90fb3 100644 --- a/api/config/erchef/config_request_test.go +++ b/api/config/erchef/config_request_test.go @@ -3,7 +3,11 @@ package erchef import ( "testing" + "github.com/chef/automate/api/config/shared" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + w "github.com/chef/automate/api/config/shared/wrappers" ) func TestValidateConfigRequestValid(t *testing.T) { @@ -11,3 +15,30 @@ func TestValidateConfigRequestValid(t *testing.T) { err := c.Validate() assert.Nil(t, err) } + +func TestDataCollector(t *testing.T) { + t.Run("enabled when External Automate is enabled and Internal Automate is disabled", func(t *testing.T) { + c := DefaultConfigRequest() + c.V1.Sys.ExternalAutomate = &shared.External_Automate{ + Enable: w.Bool(true), + } + c.ConfigureProduct(&shared.ProductConfig{ + Products: []string{"chef-server"}, + }) + require.True(t, c.V1.Sys.GetDataCollector().GetEnabled().GetValue()) + }) + t.Run("enabled when External Automate is disabled and Internal Automate is enabled", func(t *testing.T) { + c := DefaultConfigRequest() + c.ConfigureProduct(&shared.ProductConfig{ + Products: []string{"automate", "chef-server"}, + }) + require.True(t, c.V1.Sys.GetDataCollector().GetEnabled().GetValue()) + }) + t.Run("disabled when External Automate is disabled and Internal Automate is disabled", func(t *testing.T) { + c := DefaultConfigRequest() + c.ConfigureProduct(&shared.ProductConfig{ + Products: []string{"chef-server"}, + }) + require.False(t, c.V1.Sys.GetDataCollector().GetEnabled().GetValue()) + }) +} diff --git a/integration/tests/chef_server_only.sh b/integration/tests/chef_server_only.sh index 777d9fd36b6..9e4fbcb809f 100644 --- a/integration/tests/chef_server_only.sh +++ b/integration/tests/chef_server_only.sh @@ -16,12 +16,6 @@ source .studio/chef-server-collection do_create_config() { do_create_config_default - - #shellcheck disable=SC2154 - cat <> "$test_config_path" -[erchef.v1.sys.data_collector] -enabled = false -EOF } do_deploy() { From 7cde59413337ca2bdca71a7749ad8f835a3c6b9e Mon Sep 17 00:00:00 2001 From: PrajaktaPurohit Date: Mon, 8 Feb 2021 11:10:58 -0800 Subject: [PATCH 12/34] Allow nginx to start even if external automate upstream fails to resolve (#4684) Also, the resolver config reads the resolvers from /etc/resolve and queries every few minutes. I checked with wireshark to make sure it doesn't happen for every request. --- .../automate-cs-nginx/habitat/config/chef_https.conf | 10 ++++++---- components/automate-cs-nginx/habitat/config/nginx.conf | 4 ---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/components/automate-cs-nginx/habitat/config/chef_https.conf b/components/automate-cs-nginx/habitat/config/chef_https.conf index e9f07b9b832..0e2b78fdf76 100644 --- a/components/automate-cs-nginx/habitat/config/chef_https.conf +++ b/components/automate-cs-nginx/habitat/config/chef_https.conf @@ -82,6 +82,8 @@ return "{{cfg.external_automate.token}}"; } + resolver local=on; + set $externalautomate {{cfg.external_automate.endpoint}}; location ~ "^/organizations/([^/]+)/data-collector$" { set $request_org $1; access_by_lua_block { validator.validate("POST") } @@ -98,9 +100,9 @@ {{/if}} {{~#if cfg.external_automate.ssl_upstream }} - proxy_pass https://external-automate; + proxy_pass https://$externalautomate; {{else}} - proxy_pass http://external-automate; + proxy_pass http://$externalautomate; {{/if}} } @@ -124,9 +126,9 @@ {{/if}} {{~#if cfg.external_automate.ssl_upstream }} - proxy_pass https://external-automate; + proxy_pass https://$externalautomate; {{else}} - proxy_pass http://external-automate; + proxy_pass http://$externalautomate; {{/if}} } {{else}} diff --git a/components/automate-cs-nginx/habitat/config/nginx.conf b/components/automate-cs-nginx/habitat/config/nginx.conf index 4285c291d4b..f98804a1c69 100644 --- a/components/automate-cs-nginx/habitat/config/nginx.conf +++ b/components/automate-cs-nginx/habitat/config/nginx.conf @@ -84,10 +84,6 @@ http { } {{#if cfg.external_automate.enable}} - upstream external-automate { - server {{cfg.external_automate.endpoint}}; - keepalive 8; - } {{else}} upstream automate-gateway { {{#eachAlive bind.automate-gateway.members as |member|}} From d208c4d2249b959b4fabd6cae37e7eb6c4cc429c Mon Sep 17 00:00:00 2001 From: Dan DeLeo Date: Mon, 8 Feb 2021 11:13:38 -0800 Subject: [PATCH 13/34] Add Integration Testing for the Notifications Service (#4674) Create a full integration test suite for the notifications service in go. Everything is tested via external interface. This enables reimplementing the notifications-service while maintaining API stability. No work is done to run this test suite in Ci yet. It will make sense to do so once we've created the reimplementation of the notifications-service. This suite will probably need some adaption to work against the new implementation of the notifications-service. That will be done when there is a new implementation to adapt to. * Appease shellcheck * Add golang integration tests for notifications service * Organize unit tests * Add integration tests for notifications service * More test cases for notifications integration tests --- .studio/notifications-service | 18 +- .../notification_receiver_test.go | 110 ++ .../integration_test/notification_test.go | 1202 +++++++++++++++++ .../integration_test/rules_crud_test.go | 466 +++++++ .../integration_test/suite_test.go | 108 ++ .../webhook_validator_test.go | 133 ++ 6 files changed, 2031 insertions(+), 6 deletions(-) create mode 100644 components/notifications-service/integration_test/notification_receiver_test.go create mode 100644 components/notifications-service/integration_test/notification_test.go create mode 100644 components/notifications-service/integration_test/rules_crud_test.go create mode 100644 components/notifications-service/integration_test/suite_test.go create mode 100644 components/notifications-service/integration_test/webhook_validator_test.go diff --git a/.studio/notifications-service b/.studio/notifications-service index 141dcea5560..152692e3c89 100644 --- a/.studio/notifications-service +++ b/.studio/notifications-service @@ -38,6 +38,14 @@ function notifications_lint() { return $EXIT_CODE } +document "notifications_integration" < /dev/null) - if [[ $? -ne 0 ]]; then - component_path=$(hab pkg path chef/notifications-service 2> /dev/null) - if [[ $? -ne 0 ]]; then + if ! component_path=$(hab pkg path "$HAB_ORIGIN"/notifications-service 2> /dev/null); then + if ! component_path=$(hab pkg path chef/notifications-service 2> /dev/null); then error "Could not find notifications-service deployed under either your origin ($HAB_ORIGIN) or chef origin." error "Deploy A2 and try again." return 1 @@ -117,12 +123,12 @@ function notifications_update_component() { elixir_install - pushd /src/components/notifications-service/server >/dev/null + pushd /src/components/notifications-service/server >/dev/null || return 1 mix local.hex --force mix local.rebar --force MIX_ENV=habitat mix "do" deps.get, compile returnStatus=$? - popd >/dev/null + popd >/dev/null || return 1 if [[ $returnStatus == 0 ]]; then log_line "reload the notifications-service binary." diff --git a/components/notifications-service/integration_test/notification_receiver_test.go b/components/notifications-service/integration_test/notification_receiver_test.go new file mode 100644 index 00000000000..836a2f2ee03 --- /dev/null +++ b/components/notifications-service/integration_test/notification_receiver_test.go @@ -0,0 +1,110 @@ +package integration_test + +import ( + "fmt" + "io/ioutil" + "net/http" + "net/http/httptest" + "time" +) + +// notificationReceiver is an HTTP server that accepts notification posts from +// the notifications-service. We use it to verify that the +// notifications-service sends correctly formatted notifications in response to +// events. It's a small wrapper around the httptest library. +// The HTTP server listens on a random port each time you start it. Use the +// SlackURL(), etc. functions to get a useable URL. +type notificationReceiver struct { + server *httptest.Server + posts chan *notificationPost +} + +// notificationPost contains data from requests made by the notifications +// service to the notificationReceiver server. Add any fields you need to +// verify the notifications-service's behavior +type notificationPost struct { + URL string + BodyBytes []byte + BasicAuthUsed bool + BasicAuthUsername string + BasicAuthPassword string +} + +func newTestServer() *notificationReceiver { + n := notificationReceiver{ + posts: make(chan *notificationPost), + } + + n.server = httptest.NewServer(n.httpHandler()) + return &n +} + +func (n *notificationReceiver) Close() { + n.server.Close() + close(n.posts) +} + +func (n *notificationReceiver) SlackURL() string { + return fmt.Sprintf("%s/slackalert/", n.server.URL) +} + +func (n *notificationReceiver) ServiceNowURL() string { + return fmt.Sprintf("%s/servicenowalert/", n.server.URL) +} + +func (n *notificationReceiver) WebhookURL() string { + return fmt.Sprintf("%s/webhookalert/", n.server.URL) +} + +func (n *notificationReceiver) GetLastPost() *notificationPost { + return <-n.posts +} + +// CheckForPost: Check if there is a post in the posts channel, and return it +// if it's there. This is here to make negative tests (i.e., you expect no +// alert to be sent) more robust and easier to debug. You assert that this +// function returns nil and if it's not nil, testify will tell you a bit about +// the value you did get. +// +// It sleeps for 1 second because notifications-service sends notifications +// async and there's no good way to synchronize on the absence of a message. +func (n *notificationReceiver) CheckForPost() *notificationPost { + var p *notificationPost + time.Sleep(1 * time.Second) + select { + case p = <-n.posts: + return p + default: + return p + } +} + +func (n *notificationReceiver) httpHandler() http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + //fmt.Printf("Test server recvd request: %s %s\n", r.Method, r.URL) + + if r.Method == "POST" { + bodyBytes, err := ioutil.ReadAll(r.Body) + if err != nil { + fmt.Printf("[TEST SERVER] READ ERROR: %s\n", err) + return + } + //fmt.Printf("Body: \n%s\n----\n", bodyBytes) + + // posts channel is synchronous (unbuffered). We desire to have synchronous + // behavior in the test but not block this server forever if a test forgets + // to read from the channel. So do the send in a goroutine + go func() { + p := ¬ificationPost{ + URL: r.URL.String(), + BodyBytes: bodyBytes, + } + p.BasicAuthUsername, p.BasicAuthPassword, p.BasicAuthUsed = r.BasicAuth() + + n.posts <- p + }() + } + + fmt.Fprintln(w, "PONG") + } +} diff --git a/components/notifications-service/integration_test/notification_test.go b/components/notifications-service/integration_test/notification_test.go new file mode 100644 index 00000000000..8e887da1d90 --- /dev/null +++ b/components/notifications-service/integration_test/notification_test.go @@ -0,0 +1,1202 @@ +package integration_test + +import ( + "encoding/json" + "fmt" + "testing" + "time" + + "github.com/chef/automate/api/external/common/query" + "github.com/chef/automate/api/external/secrets" + "github.com/chef/automate/components/notifications-client/api" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +const exampleURL = "https://slack.example" + +var ( + // timestamps for sample data. Use semi-static values so we can match them + // exactly in test assertions + startTime = time.Now().UTC().Add(-5 * time.Minute).Round(time.Second) + endTime = time.Now().UTC().Round(time.Second) +) + +// Test Matrix for Notifications: +// 4 Event Types: +// Rule_CCRFailure Rule_Event = 0 +// Rule_CCRSuccess Rule_Event = 1 +// Rule_ComplianceFailure Rule_Event = 2 +// Rule_ComplianceSuccess Rule_Event = 3 +// +// 3 Alert types (plus additional behaviors within): +// * slack +// * 1 failed compliance control +// * > 1 failed control in one profile +// * failures in multiple profiles +// * webhook +// * servicenow +// +// Dispatch Scenarios: +// * when there are no rules, no alerts are sent +// * when there are rules but the event types don't match, no alerts are sent +// * when there is one rule with a matching event type, one alert is sent +// * when there are multiple rules matching the event type multiple alerts are sent +// +// Prefiltering: +// * alerts are never sent for CCR Success or ComplianceSuccess +// * alerts are never sent if there are no critical control failures in compliance failure +// NOTE: there's a critical controls only setting on the service now alert type +// but this cannot possibly do anything because the prefilter would discard the event first. + +func TestNotificationDispatchWithNoRules(t *testing.T) { + t.Run("with no rules, no alerts are sent", func(t *testing.T) { + err := suite.DeleteEverything() + require.NoError(t, err) + + _, err = suite.Client.Notify(ctx, ccrFailureEvent()) + require.NoError(t, err) + + _, err = suite.Client.Notify(ctx, ccrSuccessEvent()) + require.NoError(t, err) + + _, err = suite.Client.Notify(ctx, complianceFailureEvent()) + require.NoError(t, err) + + _, err = suite.Client.Notify(ctx, complianceSuccessEvent()) + require.NoError(t, err) + }) +} + +func TestNotificationDispatchWithOneSlackAlertRuleForAllEvents(t *testing.T) { + err := suite.DeleteEverything() + require.NoError(t, err) + + ts := newTestServer() + defer ts.Close() + + // NOTE: the elixir notifications service caches the rules and refreshes them + // every 5s, which means we have to wait that long for the rules to take + // effect before we test their behavior. To speed things up, we group tests + // that can share the same alert rules state. + addRules(t, + slackAlertRuleFor(api.Rule_CCRFailure, ts.SlackURL()), + slackAlertRuleFor(api.Rule_ComplianceFailure, ts.SlackURL()), + // Success events are unsupported, which we test for below + slackAlertRuleFor(api.Rule_ComplianceSuccess, ts.SlackURL()), + slackAlertRuleFor(api.Rule_CCRSuccess, ts.SlackURL()), + ) + + t.Run("no alerts are sent for CCRSuccess, they are always filtered", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, ccrSuccessEvent()) + require.NoError(t, err) + post := ts.CheckForPost() + assert.Nil(t, post) + }) + + t.Run("no alerts are sent for ComplianceSuccess, they are always filtered", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, complianceSuccessEvent()) + require.NoError(t, err) + post := ts.CheckForPost() + assert.Nil(t, post) + }) + + t.Run("CCRFailure alerts are sent to the Slack URL", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, ccrFailureEvent()) + require.NoError(t, err) + postData := ts.GetLastPost() + assert.NotNil(t, postData) + }) + + t.Run("CCRFailure alerts are properly formatted", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, ccrFailureEvent()) + require.NoError(t, err) + postData := ts.GetLastPost() + assert.NotNil(t, postData) + + var actual SlackMessage + err = json.Unmarshal(postData.BodyBytes, &actual) + require.NoError(t, err) + assert.Equal(t, "Chef Automate", actual.Username) + assert.Equal(t, "\n", actual.Text) + assert.Equal(t, "https://docs.chef.io/images/chef-icon.png", actual.IconURL) + require.Len(t, actual.Attachments, 1) + attach := actual.Attachments[0] + assert.Equal(t, "Example Exception Occurs\n```Error: Chef::ExampleException\nMessage: EXAMPLE EXCEPTION MESSAGE\n(cookbook_example::recipe_example line 13)\nFile: recipe_example\nLine: 13```", attach.Text) + assert.Equal(t, "", attach.Pretext) + assert.Equal(t, []string{"text"}, attach.MarkdownIn) + assert.Equal(t, "Chef client run failed on chefnode.example", attach.Fallback) + assert.Equal(t, "warning", attach.Color) + assert.Len(t, attach.Fields, 2) + expectedField1 := &SlackAttachmentField{ + Value: "chefnode.example", + Title: "Node", + Short: false, + } + assert.Contains(t, attach.Fields, expectedField1) + expectedField2 := &SlackAttachmentField{ + Value: "cookbook_example::recipe_example", + Title: "Cookbook::Recipe", + Short: false, + } + assert.Contains(t, attach.Fields, expectedField2) + }) + + t.Run("ComplianceFailure alerts are sent to the Slack URL", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, complianceFailureEvent()) + require.NoError(t, err) + + postData := ts.GetLastPost() + assert.NotNil(t, postData) + + }) + + // The formatter for compliance failures behaves differently if there are + // 1 vs. 2+ failed profiles + // 1 vs. 2+ failed controls + // It examines the fields in the data to find critical failed controls as + // here: + // https://github.com/chef/automate/blob/5b457d40fb8ec494d69678bc595c264ca4b9bf94/components/notifications-service/server/lib/formatters/utils.ex#L27 + t.Run("ComplianceFailure alerts are formatted correctly when one control fails", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, complianceFailureEvent()) + require.NoError(t, err) + + postData := ts.GetLastPost() + assert.NotNil(t, postData) + + var actual SlackMessage + err = json.Unmarshal(postData.BodyBytes, &actual) + require.NoError(t, err) + assert.Equal(t, "Chef Automate", actual.Username) + assert.Equal(t, "", actual.Text) + assert.Equal(t, "https://docs.chef.io/images/chef-icon.png", actual.IconURL) + require.Len(t, actual.Attachments, 1) + attach := actual.Attachments[0] + assert.Equal(t, "```EXAMPLE CONTROL FAILED MESSAGE```\n", attach.Text) + assert.Equal(t, "", attach.Pretext) + assert.Equal(t, []string{"text", "pretext"}, attach.MarkdownIn) + assert.Equal(t, "InSpec critical control failure on node chefnode.example.\nEXAMPLE CONTROL FAILED MESSAGE", attach.Fallback) + assert.Equal(t, "warning", attach.Color) + assert.Len(t, attach.Fields, 3) + expectedField1 := &SlackAttachmentField{ + Value: "Example Control::Simulated Failure", + Title: "Control ID::Title", + Short: false, + } + assert.Contains(t, attach.Fields, expectedField1) + expectedField2 := &SlackAttachmentField{ + Value: "Example Profile", + Title: "Profile", + Short: false, + } + assert.Contains(t, attach.Fields, expectedField2) + expectedField3 := &SlackAttachmentField{ + Value: "chefnode.example", + Title: "Node", + Short: false, + } + assert.Contains(t, attach.Fields, expectedField3) + }) + t.Run("ComplianceFailure alerts are formatted correctly when N > 1 controls fail in one profile", func(t *testing.T) { + event := complianceFailureEvent() + cf := event.GetComplianceFailure() + cf.TestTotals.Failed = 2 + cf.TestTotals.Critical = 2 + cf.TestTotals.CriticalFailed = 2 + profile := cf.FailedProfiles[0] + profile.Stats.NumTests = 2 + profile.Stats.NumFailedTests = 2 + + failedControl2 := &api.Profile_Control{ + Id: "Example Control", + Impact: 7.7, + Title: "Simulated Failure 2", + Desc: "An example control from an integration_test (2)", + Stats: &api.Profile_Control_ResultTotals{ + NumTests: 2, + NumFailedTests: 1, + NumSkippedTests: 0, + NumPassedTests: 1, + }, + FailedResults: []*api.Profile_Control_Result{ + &api.Profile_Control_Result{ + Status: "failed", + CodeDesc: "not good", + Message: "EXAMPLE CONTROL FAILED MESSAGE TWO", + }, + }, + } + + profile.FailedControls = append(profile.FailedControls, failedControl2) + + _, err := suite.Client.Notify(ctx, event) + require.NoError(t, err) + + postData := ts.GetLastPost() + assert.NotNil(t, postData) + + // uncomment to see the message the service sent + // fmt.Println(string(postData.BodyBytes)) + + var actual SlackMessage + err = json.Unmarshal(postData.BodyBytes, &actual) + require.NoError(t, err) + assert.Equal(t, "Chef Automate", actual.Username) + assert.Equal(t, "", actual.Text) + assert.Equal(t, "https://docs.chef.io/images/chef-icon.png", actual.IconURL) + require.Len(t, actual.Attachments, 1) + attach := actual.Attachments[0] + assert.Equal(t, "```2 of 4 tests failed. View in Chef Automate for full details.```\n", attach.Text) + assert.Equal(t, "", attach.Pretext) + assert.Equal(t, []string{"text", "pretext"}, attach.MarkdownIn) + assert.Equal(t, "InSpec critical control failure on node chefnode.example.\n2 of 4 tests failed. View in Chef Automate for full details.", attach.Fallback) + assert.Equal(t, "warning", attach.Color) + + assert.Len(t, attach.Fields, 3) + expectedField1 := &SlackAttachmentField{ + Value: "Multiple", + Title: "Control ID::Title", + Short: false, + } + assert.Contains(t, attach.Fields, expectedField1) + expectedField2 := &SlackAttachmentField{ + Value: "Example Profile", + Title: "Profile", + Short: false, + } + assert.Contains(t, attach.Fields, expectedField2) + expectedField3 := &SlackAttachmentField{ + Value: "chefnode.example", + Title: "Node", + Short: false, + } + assert.Contains(t, attach.Fields, expectedField3) + }) + t.Run("ComplianceFailure alerts are formatted correctly when N > 1 controls fail in M > 1 profiles", func(t *testing.T) { + event := complianceFailureEvent() + cf := event.GetComplianceFailure() + cf.TestTotals.Failed = 2 + cf.TestTotals.Critical = 2 + cf.TestTotals.CriticalFailed = 2 + + failedProfile2 := &api.Profile{ + Name: "Example Profile 2", + Title: "Example Profile 2", + Stats: &api.Profile_ControlTotals{ + NumTests: 1, + NumFailedTests: 1, + NumSkippedTests: 0, + NumPassedTests: 0, + }, + FailedControls: []*api.Profile_Control{ + &api.Profile_Control{ + Id: "Example Control in Profile 2", + Impact: 7.5, + Title: "Simulated Failure in Profile 2", + Desc: "An example control from an integration_test (2)", + Stats: &api.Profile_Control_ResultTotals{ + NumTests: 2, + NumFailedTests: 1, + NumSkippedTests: 0, + NumPassedTests: 1, + }, + FailedResults: []*api.Profile_Control_Result{ + &api.Profile_Control_Result{ + Status: "failed", + CodeDesc: "not good", + Message: "EXAMPLE CONTROL FAILED MESSAGE (2)", + }, + }, + }, + }, + } + cf.FailedProfiles = append(cf.FailedProfiles, failedProfile2) + + _, err := suite.Client.Notify(ctx, event) + require.NoError(t, err) + + postData := ts.GetLastPost() + assert.NotNil(t, postData) + + // uncomment to see the message the service sent + // fmt.Println(string(postData.BodyBytes)) + + var actual SlackMessage + err = json.Unmarshal(postData.BodyBytes, &actual) + require.NoError(t, err) + assert.Equal(t, "Chef Automate", actual.Username) + assert.Equal(t, "", actual.Text) + assert.Equal(t, "https://docs.chef.io/images/chef-icon.png", actual.IconURL) + require.Len(t, actual.Attachments, 1) + attach := actual.Attachments[0] + assert.Equal(t, "```2 of 4 tests failed. View in Chef Automate for full details.```\n", attach.Text) + assert.Equal(t, "", attach.Pretext) + assert.Equal(t, []string{"text", "pretext"}, attach.MarkdownIn) + assert.Equal(t, "InSpec critical control failure on node chefnode.example.\n2 of 4 tests failed. View in Chef Automate for full details.", attach.Fallback) + assert.Equal(t, "warning", attach.Color) + + assert.Len(t, attach.Fields, 3) + expectedField1 := &SlackAttachmentField{ + Value: "Multiple", + Title: "Control ID::Title", + Short: false, + } + assert.Contains(t, attach.Fields, expectedField1) + expectedField2 := &SlackAttachmentField{ + Value: "Multiple", + Title: "Profile", + Short: false, + } + assert.Contains(t, attach.Fields, expectedField2) + expectedField3 := &SlackAttachmentField{ + Value: "chefnode.example", + Title: "Node", + Short: false, + } + assert.Contains(t, attach.Fields, expectedField3) + }) +} + +func TestNotificationDispatchWithOneServiceNowAlertRuleForAllEvents(t *testing.T) { + err := suite.DeleteEverything() + require.NoError(t, err) + + ts := newTestServer() + defer ts.Close() + + // NOTE: the elixir notifications service caches the rules and refreshes them + // every 5s, which means we have to wait that long for the rules to take + // effect before we test their behavior. To speed things up, we group tests + // that can share the same alert rules state. + addRules(t, + serviceNowAlertRuleFor(api.Rule_CCRFailure, ts.ServiceNowURL(), ""), + serviceNowAlertRuleFor(api.Rule_ComplianceFailure, ts.ServiceNowURL(), ""), + // Success events are unsupported, which we test for below + serviceNowAlertRuleFor(api.Rule_ComplianceSuccess, ts.ServiceNowURL(), ""), + serviceNowAlertRuleFor(api.Rule_CCRSuccess, ts.ServiceNowURL(), ""), + ) + + t.Run("CCRFailure alerts are sent to the ServiceNow URL", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, ccrFailureEvent()) + require.NoError(t, err) + postData := ts.GetLastPost() + assert.NotNil(t, postData) + }) + + t.Run("CCRFailure alerts are formatted properly", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, ccrFailureEvent()) + require.NoError(t, err) + postData := ts.GetLastPost() + assert.NotNil(t, postData) + + // uncomment to see the message the service sent + //fmt.Println(string(postData.BodyBytes)) + + var actual ServiceNowMessage + err = json.Unmarshal(postData.BodyBytes, &actual) + require.NoError(t, err) + + assert.Equal(t, "converge_failure", actual.Type) + assert.Equal(t, "chefnode.example", actual.NodeName) + // AutomateFQDN is populated from the A2 config, so it could be anything. + // In the hab studio, it should be a2-dev.test + assert.NotEmpty(t, actual.AutomateFQDN) + assert.Equal(t, "https://automate.example/nodes/0/runs/1", actual.AutomateFailureURL) + assert.Equal(t, "cookbook_example", actual.Cookbook) + expectedFailureSnippet := + `Chef client run failure on [https://automate.example/nodes/0] chefnode.example : https://automate.example/nodes/0/runs/1 +Example Exception Occurs +EXAMPLE EXCEPTION MESSAGE +(cookbook_example::recipe_example line 13) +` + assert.Equal(t, expectedFailureSnippet, actual.FailureSnippet) + assert.Equal(t, "Example Exception Occurs", actual.ExceptionTitle) + assert.Equal(t, "EXAMPLE EXCEPTION MESSAGE\n(cookbook_example::recipe_example line 13)", actual.ExceptionMessage) + expectedBT := []string{"/path/to/recipe_example.rb: 42", "/path/to/recipe_example.rb: 23"} + assert.Equal(t, expectedBT, actual.ExceptionBacktrace) + assertRFC3339Equal(t, actual.StartTimeUTC, startTime) + assertRFC3339Equal(t, actual.EndTimeUTC, endTime) + assertRFC3339Equal(t, actual.TimestampUTC, endTime) + }) + t.Run("ComplianceFailure alerts are sent to the ServiceNow URL", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, complianceFailureEvent()) + require.NoError(t, err) + postData := ts.GetLastPost() + assert.NotNil(t, postData) + }) + t.Run("ComplianceFailure alerts are formatted properly", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, complianceFailureEvent()) + require.NoError(t, err) + postData := ts.GetLastPost() + assert.NotNil(t, postData) + + // uncomment to see the message the service sent + //fmt.Println(string(postData.BodyBytes)) + + var actual ServiceNowComplianceFailureMessage + err = json.Unmarshal(postData.BodyBytes, &actual) + require.NoError(t, err) + + assert.Equal(t, "compliance_failure", actual.Type) + assert.Equal(t, "chefnode.example", actual.NodeName) + assert.Equal(t, "11111111-2222-3333-4444-555555555555", actual.NodeUUID) + assert.Equal(t, "0", actual.InspecVersion) + // AutomateFQDN is populated from the A2 config, so it could be anything. + // In the hab studio, it should be a2-dev.test + assert.NotEmpty(t, actual.AutomateFQDN) + assert.Equal(t, "https://chefautomate.example/compliance_failure/0", actual.AutomateFailureURL) + expectedFailureSnippet := "InSpec found a control failure on [chefnode.example](https://chefautomate.example/compliance_failure/0)" + assert.Equal(t, expectedFailureSnippet, actual.FailureSnippet) + + assertRFC3339Equal(t, actual.EndTimeUTC, endTime) + assertRFC3339Equal(t, actual.TimestampUTC, startTime) + + assert.Equal(t, 1, actual.TotalNumberOfTests) + assert.Equal(t, 0, actual.TotalNumberOfSkippedTests) + assert.Equal(t, 0, actual.TotalNumberOfPassedTests) + assert.Equal(t, 1, actual.TotalNumberOfFailedTests) + assert.Equal(t, 1, actual.NumberOfFailedCriticalTests) + assert.Equal(t, 1, actual.NumberOfCriticalTests) + + require.Len(t, actual.FailedCriticalProfiles, 1) + profileActual := actual.FailedCriticalProfiles[0] + + assert.Equal(t, "Example Profile", profileActual.Name) + assert.Equal(t, "Example Profile", profileActual.Title) + assert.Equal(t, "An example profile for integration testing", profileActual.Summary) + assert.Equal(t, "5.23.42", profileActual.Version) + assert.Equal(t, "123abc", profileActual.SHA256) + assert.Equal(t, "automate@chef.io", profileActual.Maintainer) + assert.Equal(t, "Apache 2.0", profileActual.License) + assert.Equal(t, "Chef Software, Inc.", profileActual.Copyright) + assert.Equal(t, "legal@chef.io", profileActual.CopyrightEmail) + assert.Equal(t, 1, profileActual.NumberOfControls) + + require.Len(t, profileActual.Supports, 1) + supportsActual := profileActual.Supports[0] + assert.Equal(t, "84", supportsActual.Release) + assert.Equal(t, "plan9", supportsActual.OSName) + assert.Equal(t, "Esoterica", supportsActual.OSFamily) + assert.Equal(t, "99", supportsActual.InSpec) + + require.Len(t, profileActual.Attributes, 1) + attrActual := profileActual.Attributes[0] + + assert.Equal(t, "example_attr", attrActual.Name) + assert.Equal(t, "example attribute in an integration test", attrActual.Options.Description) + + require.Len(t, profileActual.Controls, 1) + controlActual := profileActual.Controls[0] + + assert.Equal(t, "Example Control", controlActual.ID) + assert.Equal(t, "Simulated Failure", controlActual.Title) + assert.Equal(t, "An example control from an integration_test", controlActual.Desc) + assert.Equal(t, "failed", controlActual.Status) + assert.Equal(t, "halt -p", controlActual.Code) + assert.Equal(t, 2, controlActual.NumberOfTests) + assert.Equal(t, 1, controlActual.NumberOfFailedTests) + assert.Equal(t, 7.5, controlActual.Impact) + + assert.Equal(t, "example_profile.rb", controlActual.SourceLocation.Ref) + assert.Equal(t, 5, controlActual.SourceLocation.Line) + + require.Len(t, controlActual.Refs, 1) + refsActual := controlActual.Refs[0] + assert.Equal(t, "http://compliancerules.example.net", refsActual.URL) + assert.Equal(t, "http://compliancerules.example", refsActual.URI) + + require.Len(t, controlActual.Results, 1) + resultActual := controlActual.Results[0] + + assert.Equal(t, "failed", resultActual.Status) + assert.Equal(t, "EXAMPLE CONTROL FAILED MESSAGE", resultActual.Message) + assert.Equal(t, "example skip message", resultActual.SkipMessage) + assert.Equal(t, "not good", resultActual.CodeDesc) + assert.Equal(t, 3.5, resultActual.RunTime) + + assertRFC3339Equal(t, resultActual.StartTime, startTime) + }) +} + +func TestNotificationDispatchWithOneServiceNowAlertRuleWithASecretID(t *testing.T) { + err := suite.DeleteEverything() + require.NoError(t, err) + + ts := newTestServer() + defer ts.Close() + + sres, err := suite.SecretsClient.Create(ctx, &secrets.Secret{ + Id: "integration_test_secret_id", + Name: "integration_test_secret_id", + Type: "service_now", + Data: []*query.Kv{ + &query.Kv{Key: "username", Value: "integration_test_username_secretstore"}, + &query.Kv{Key: "password", Value: "integration_test_password_secretstore"}, + }, + }) + require.NoError(t, err) + require.NotEmpty(t, sres.Id) + + secretID := sres.Id + defer func() { + suite.SecretsClient.Delete(ctx, &secrets.Id{Id: secretID}) + }() + + // NOTE: the elixir notifications service caches the rules and refreshes them + // every 5s, which means we have to wait that long for the rules to take + // effect before we test their behavior. To speed things up, we group tests + // that can share the same alert rules state. + addRules(t, + serviceNowAlertRuleFor(api.Rule_CCRFailure, ts.ServiceNowURL(), secretID), + serviceNowAlertRuleFor(api.Rule_ComplianceFailure, ts.ServiceNowURL(), secretID), + ) + + t.Run("CCRFailure alerts are sent to the ServiceNow URL with the secret username+password", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, ccrFailureEvent()) + require.NoError(t, err) + + postData := ts.GetLastPost() + assert.NotNil(t, postData) + assert.True(t, postData.BasicAuthUsed) + assert.Equal(t, "integration_test_username_secretstore", postData.BasicAuthUsername) + assert.Equal(t, "integration_test_password_secretstore", postData.BasicAuthPassword) + }) + + t.Run("ComplianceFailure alerts are sent to the ServiceNow URL with the secret username+password", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, complianceFailureEvent()) + require.NoError(t, err) + + postData := ts.GetLastPost() + assert.NotNil(t, postData) + assert.True(t, postData.BasicAuthUsed) + assert.Equal(t, "integration_test_username_secretstore", postData.BasicAuthUsername) + assert.Equal(t, "integration_test_password_secretstore", postData.BasicAuthPassword) + }) +} + +func TestNotificationDispatchWithOneWebhookAlertRuleForAllEvents(t *testing.T) { + err := suite.DeleteEverything() + require.NoError(t, err) + + ts := newTestServer() + defer ts.Close() + + // NOTE: the elixir notifications service caches the rules and refreshes them + // every 5s, which means we have to wait that long for the rules to take + // effect before we test their behavior. To speed things up, we group tests + // that can share the same alert rules state. + addRules(t, + webhookAlertRuleFor(api.Rule_CCRFailure, ts.WebhookURL()), + webhookAlertRuleFor(api.Rule_ComplianceFailure, ts.WebhookURL()), + // Success events are unsupported, which we test for below + webhookAlertRuleFor(api.Rule_ComplianceSuccess, ts.WebhookURL()), + webhookAlertRuleFor(api.Rule_CCRSuccess, ts.WebhookURL()), + ) + + t.Run("CCRFailure alerts are sent to the Webhook URL", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, ccrFailureEvent()) + require.NoError(t, err) + postData := ts.GetLastPost() + assert.NotNil(t, postData) + }) + + t.Run("CCRFailure alerts are formatted properly", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, ccrFailureEvent()) + require.NoError(t, err) + postData := ts.GetLastPost() + assert.NotNil(t, postData) + + // uncomment to see the message the service sent + //fmt.Println(string(postData.BodyBytes)) + + var actual WebhookMessage + err = json.Unmarshal(postData.BodyBytes, &actual) + require.NoError(t, err) + + assert.Equal(t, "converge_failure", actual.Type) + assert.Equal(t, "chefnode.example", actual.NodeName) + + expectedSnippet := "Chef client run failure on [https://automate.example/nodes/0] chefnode.example : https://automate.example/nodes/0/runs/1\nExample Exception Occurs\nEXAMPLE EXCEPTION MESSAGE\n(cookbook_example::recipe_example line 13) \n" + assert.Equal(t, expectedSnippet, actual.FailureSnippet) + assert.Equal(t, "Example Exception Occurs", actual.ExceptionTitle) + assert.Equal(t, "EXAMPLE EXCEPTION MESSAGE\n(cookbook_example::recipe_example line 13)", actual.ExceptionMessage) + + expectedBT := []string{ + "/path/to/recipe_example.rb: 42", + "/path/to/recipe_example.rb: 23", + } + assert.Equal(t, expectedBT, actual.ExceptionBacktrace) + assert.NotEmpty(t, actual.AutomateFQDN) + assert.Equal(t, "https://automate.example/nodes/0/runs/1", actual.AutomateFailureURL) + + assertRFC3339Equal(t, actual.StartTimeUTC, startTime) + assertRFC3339Equal(t, actual.EndTimeUTC, endTime) + }) + + t.Run("ComplianceFailure alerts are sent to the Webhook URL", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, complianceFailureEvent()) + require.NoError(t, err) + postData := ts.GetLastPost() + assert.NotNil(t, postData) + }) + t.Run("ComplianceFailure alerts are formatted properly", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, complianceFailureEvent()) + require.NoError(t, err) + postData := ts.GetLastPost() + assert.NotNil(t, postData) + + // uncomment to see the message the service sent + //fmt.Println(string(postData.BodyBytes)) + + var actual WebhookComplianceFailureMessage + err = json.Unmarshal(postData.BodyBytes, &actual) + require.NoError(t, err) + + assert.Equal(t, "compliance_failure", actual.Type) + assert.Equal(t, "chefnode.example", actual.NodeName) + assert.Equal(t, "11111111-2222-3333-4444-555555555555", actual.NodeUUID) + assert.Equal(t, "0", actual.InspecVersion) + // AutomateFQDN is populated from the A2 config, so it could be anything. + // In the hab studio, it should be a2-dev.test + assert.NotEmpty(t, actual.AutomateFQDN) + assert.Equal(t, "https://chefautomate.example/compliance_failure/0", actual.AutomateFailureURL) + expectedFailureSnippet := "InSpec found a critical control failure on [chefnode.example](https://chefautomate.example/compliance_failure/0)" + assert.Equal(t, expectedFailureSnippet, actual.FailureSnippet) + + assert.Equal(t, 1, actual.TotalNumberOfTests) + assert.Equal(t, 0, actual.TotalNumberOfSkippedTests) + assert.Equal(t, 0, actual.TotalNumberOfPassedTests) + assert.Equal(t, 1, actual.TotalNumberOfFailedTests) + assert.Equal(t, 1, actual.NumberOfFailedCriticalTests) + assert.Equal(t, 1, actual.NumberOfCriticalTests) + + require.Len(t, actual.FailedCriticalProfiles, 1) + profileActual := actual.FailedCriticalProfiles[0] + + assert.Equal(t, "Example Profile", profileActual.Name) + assert.Equal(t, "Example Profile", profileActual.Title) + assert.Equal(t, "An example profile for integration testing", profileActual.Summary) + assert.Equal(t, "5.23.42", profileActual.Version) + assert.Equal(t, "123abc", profileActual.SHA256) + assert.Equal(t, "automate@chef.io", profileActual.Maintainer) + assert.Equal(t, "Apache 2.0", profileActual.License) + assert.Equal(t, "Chef Software, Inc.", profileActual.Copyright) + assert.Equal(t, "legal@chef.io", profileActual.CopyrightEmail) + assert.Equal(t, 1, profileActual.NumberOfControls) + + require.Len(t, profileActual.Supports, 1) + supportsActual := profileActual.Supports[0] + assert.Equal(t, "84", supportsActual.Release) + assert.Equal(t, "plan9", supportsActual.OSName) + assert.Equal(t, "Esoterica", supportsActual.OSFamily) + assert.Equal(t, "99", supportsActual.InSpec) + + require.Len(t, profileActual.Attributes, 1) + attrActual := profileActual.Attributes[0] + + assert.Equal(t, "example_attr", attrActual.Name) + assert.Equal(t, "example attribute in an integration test", attrActual.Options.Description) + + require.Len(t, profileActual.Controls, 1) + controlActual := profileActual.Controls[0] + + assert.Equal(t, "Example Control", controlActual.ID) + assert.Equal(t, "Simulated Failure", controlActual.Title) + assert.Equal(t, "An example control from an integration_test", controlActual.Desc) + assert.Equal(t, "failed", controlActual.Status) + assert.Equal(t, "halt -p", controlActual.Code) + assert.Equal(t, 2, controlActual.NumberOfTests) + assert.Equal(t, 1, controlActual.NumberOfFailedTests) + assert.Equal(t, 7.5, controlActual.Impact) + + assert.Equal(t, "example_profile.rb", controlActual.SourceLocation.Ref) + assert.Equal(t, 5, controlActual.SourceLocation.Line) + + require.Len(t, controlActual.Refs, 1) + refsActual := controlActual.Refs[0] + assert.Equal(t, "http://compliancerules.example.net", refsActual.URL) + assert.Equal(t, "http://compliancerules.example", refsActual.URI) + + require.Len(t, controlActual.Results, 1) + resultActual := controlActual.Results[0] + + assert.Equal(t, "failed", resultActual.Status) + assert.Equal(t, "EXAMPLE CONTROL FAILED MESSAGE", resultActual.Message) + assert.Equal(t, "example skip message", resultActual.SkipMessage) + assert.Equal(t, "not good", resultActual.CodeDesc) + assert.Equal(t, 3.5, resultActual.RunTime) + + assertRFC3339Equal(t, resultActual.StartTime, startTime) + }) +} + +func TestNotificationDispatchWithMultipleDestinations(t *testing.T) { + err := suite.DeleteEverything() + require.NoError(t, err) + + ts := newTestServer() + defer ts.Close() + + addRules(t, + slackAlertRuleFor(api.Rule_CCRFailure, ts.SlackURL()), + slackAlertRuleFor(api.Rule_ComplianceFailure, ts.SlackURL()), + serviceNowAlertRuleFor(api.Rule_CCRFailure, ts.ServiceNowURL(), ""), + serviceNowAlertRuleFor(api.Rule_ComplianceFailure, ts.ServiceNowURL(), ""), + webhookAlertRuleFor(api.Rule_CCRFailure, ts.WebhookURL()), + webhookAlertRuleFor(api.Rule_ComplianceFailure, ts.WebhookURL()), + ) + t.Run("a CCR failure sends one alert to each destination", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, ccrFailureEvent()) + require.NoError(t, err) + actualURLPaths := make(map[string]bool) + for i := 0; i < 3; i++ { + postData := ts.GetLastPost() + assert.NotNil(t, postData) + actualURLPaths[postData.URL] = true + } + expectedURLPaths := map[string]bool{ + "/slackalert/": true, + "/servicenowalert/": true, + "/webhookalert/": true, + } + + assert.Equal(t, expectedURLPaths, actualURLPaths) + + }) + t.Run("a compliance failure sends one alert to each destination", func(t *testing.T) { + _, err := suite.Client.Notify(ctx, complianceFailureEvent()) + require.NoError(t, err) + actualURLPaths := make(map[string]bool) + for i := 0; i < 3; i++ { + postData := ts.GetLastPost() + assert.NotNil(t, postData) + actualURLPaths[postData.URL] = true + } + expectedURLPaths := map[string]bool{ + "/slackalert/": true, + "/servicenowalert/": true, + "/webhookalert/": true, + } + + assert.Equal(t, expectedURLPaths, actualURLPaths) + }) +} + +// assertRFC3339Equal asserts that the given RFC3339 formatted time string +// matches the expectedTime. A string comparison is likely to fail +// inadvertently because of how the floating point value of the fractional +// seconds is converted to a string in different programming languages. E.g., +// trying to compare the strings can result in something like this: +// expected:"2021-01-29T19:11:09Z" +// actual: "2021-01-29T19:11:09.000000Z" +// This function converts the string to a time object before comparing. It's +// recommended to truncate your time values to the nearest second to avoid +// floating point shenanigans. +func assertRFC3339Equal(t *testing.T, rfc3339str string, expectedTime time.Time) { + parsedValue, err := time.Parse(time.RFC3339Nano, rfc3339str) + assert.NoError(t, err) + assert.Equal(t, expectedTime, parsedValue) +} + +func addRules(t *testing.T, rules ...*api.Rule) { + for _, r := range rules { + createResponse, err := suite.Client.AddRule(ctx, r) + require.NoError(t, err) + require.Equal(t, api.RuleAddResponse_ADDED, createResponse.Code) + } + // elixir implementation keeps a cache of the rules which it refreshes every 5s + time.Sleep(6 * time.Second) +} + +func slackAlertRuleFor(re api.Rule_Event, url string) *api.Rule { + return &api.Rule{ + Event: re, + Name: fmt.Sprintf("SlackAlert_%s", re), + Action: &api.Rule_SlackAlert{ + SlackAlert: &api.SlackAlert{ + Url: url, + }, + }, + } +} + +func serviceNowAlertRuleFor(re api.Rule_Event, url, secretID string) *api.Rule { + return &api.Rule{ + Event: re, + Name: fmt.Sprintf("ServiceNowAlert_%s", re), + Action: &api.Rule_ServiceNowAlert{ + ServiceNowAlert: &api.ServiceNowAlert{ + Url: url, + SecretId: secretID, + }, + }, + } +} + +func webhookAlertRuleFor(re api.Rule_Event, url string) *api.Rule { + return &api.Rule{ + Event: re, + Name: fmt.Sprintf("WebhookAlert_%s", re), + Action: &api.Rule_WebhookAlert{ + WebhookAlert: &api.WebhookAlert{ + Url: url, + }, + }, + } +} + +func ccrFailureEvent() *api.Event { + return &api.Event{ + Id: newEventID(), + Event: &api.Event_CCRFailure{ + CCRFailure: &api.CCRFailure{ + RunId: "0", + RunUrl: "https://automate.example/nodes/0/runs/1", + NodeName: "chefnode.example", + NodeUrl: "https://automate.example/nodes/0", + Cookbook: "cookbook_example", + Recipe: "recipe_example", + Exception: &api.ExceptionInfo{ + Title: "Example Exception Occurs", + Class: "Chef::ExampleException", + Msg: "EXAMPLE EXCEPTION MESSAGE\n(cookbook_example::recipe_example line 13)", + Backtrace: []string{ + "/path/to/recipe_example.rb: 42", + "/path/to/recipe_example.rb: 23", + }, + }, + Time: &api.TimeInfo{ + StartTime: startTime.Format(time.RFC3339), + EndTime: endTime.Format(time.RFC3339), + }, + Timestamp: endTime.Format(time.RFC3339), + }, + }, + } +} + +func ccrSuccessEvent() *api.Event { + return &api.Event{ + Id: newEventID(), + Event: &api.Event_CCRSuccess{ + CCRSuccess: &api.CCRSuccess{}, + }, + } +} + +func complianceFailureEvent() *api.Event { + return &api.Event{ + Id: newEventID(), + Event: &api.Event_ComplianceFailure{ + ComplianceFailure: &api.ComplianceFailure{ + Id: "0", + NodeName: "chefnode.example", + NodeId: "11111111-2222-3333-4444-555555555555", + InspecVersion: "0", + EndTime: endTime.Format(time.RFC3339), + Timestamp: startTime.Format(time.RFC3339), + ComplianceUrl: "https://chefautomate.example/compliance_failure/0", + TestTotals: &api.ComplianceFailure_ControlTotals{ + Skipped: 0, + Passed: 0, + Failed: 1, + Critical: 1, + CriticalFailed: 1, + }, + FailedProfiles: []*api.Profile{ + &api.Profile{ + Name: "Example Profile", + Title: "Example Profile", + Version: "5.23.42", + Summary: "An example profile for integration testing", + Maintainer: "automate@chef.io", + Copyright: "Chef Software, Inc.", + CopyrightEmail: "legal@chef.io", + License: "Apache 2.0", + Sha256: "123abc", + Supports: []*api.PlatformSupport{ + &api.PlatformSupport{ + Inspec: "99", + OsName: "plan9", + OsFamily: "Esoterica", + Release: "84", + }, + }, + Attributes: []*api.Profile_Attribute{ + &api.Profile_Attribute{ + Name: "example_attr", + Options: &api.Profile_Attribute_Options{ + Description: "example attribute in an integration test", + }, + }, + }, + Stats: &api.Profile_ControlTotals{ + NumTests: 1, + NumFailedTests: 1, + NumSkippedTests: 0, + NumPassedTests: 0, + }, + FailedControls: []*api.Profile_Control{ + &api.Profile_Control{ + Id: "Example Control", + Impact: 7.5, + Title: "Simulated Failure", + Desc: "An example control from an integration_test", + Refs: []*api.Refs{ + &api.Refs{Uri: "http://compliancerules.example", Url: "http://compliancerules.example.net"}, + }, + Code: "halt -p", + SourceLocation: &api.SourceLocation{Ref: "example_profile.rb", Line: 5}, + Stats: &api.Profile_Control_ResultTotals{ + NumTests: 2, + NumFailedTests: 1, + NumSkippedTests: 0, + NumPassedTests: 1, + }, + FailedResults: []*api.Profile_Control_Result{ + &api.Profile_Control_Result{ + Status: "failed", + CodeDesc: "not good", + Message: "EXAMPLE CONTROL FAILED MESSAGE", + SkipMessage: "example skip message", + StartTime: startTime.Format(time.RFC3339), + RunTime: 3.5, + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func complianceSuccessEvent() *api.Event { + return &api.Event{ + Id: newEventID(), + Event: &api.Event_ComplianceSuccess{ + ComplianceSuccess: &api.ComplianceSuccess{}, + }, + } +} + +func newEventID() string { + return fmt.Sprintf("%d", time.Now().UnixNano()) +} + +type SlackMessage struct { + Username string `json:"username"` + Text string `json:"text"` + IconURL string `json:"icon_url"` + Attachments []*SlackAttachment `json:"attachments"` +} + +type SlackAttachment struct { + Text string `json:"text"` + Pretext string `json:"pretext"` + MarkdownIn []string `json:"mrkdwn_in"` + Fallback string `json:"fallback"` + Color string `json:"color"` + Fields []*SlackAttachmentField `json:"fields"` +} + +type SlackAttachmentField struct { + Value string `json:"value"` + Title string `json:"title"` + Short bool `json:"short"` +} + +type ServiceNowMessage struct { + Type string `json:"type"` + NodeName string `json:"node_name"` + AutomateFQDN string `json:"automate_fqdn"` + AutomateFailureURL string `json:"automate_failure_url"` + TimestampUTC string `json:"timestamp_utc"` + StartTimeUTC string `json:"start_time_utc"` + EndTimeUTC string `json:"end_time_utc"` + FailureSnippet string `json:"failure_snippet"` + ExceptionTitle string `json:"exception_title"` + ExceptionMessage string `json:"exception_message"` + Cookbook string `json:"cookbook"` + ExceptionBacktrace []string `json:"exception_backtrace"` +} + +type ServiceNowComplianceFailureMessage struct { + Type string `json:"type"` + NodeName string `json:"node_name"` + NodeUUID string `json:"node_uuid"` + InspecVersion string `json:"inspec_version"` + AutomateFQDN string `json:"automate_fqdn"` + AutomateFailureURL string `json:"automate_failure_url"` + TotalNumberOfTests int `json:"total_number_of_tests"` + TotalNumberOfSkippedTests int `json:"total_number_of_skipped_tests"` + TotalNumberOfPassedTests int `json:"total_number_of_passed_tests"` + TotalNumberOfFailedTests int `json:"total_number_of_failed_tests"` + NumberOfFailedCriticalTests int `json:"number_of_failed_critical_tests"` + NumberOfCriticalTests int `json:"number_of_critical_tests"` + FailureSnippet string `json:"failure_snippet"` + FailedCriticalProfiles []*ServiceNowFailedProfile `json:"failed_critical_profiles"` + TimestampUTC string `json:"timestamp_utc"` + EndTimeUTC string `json:"end_time_utc"` +} + +type ServiceNowFailedProfile struct { + Name string `json:"name"` + Title string `json:"title"` + Summary string `json:"summary"` + Version string `json:"version"` + Maintainer string `json:"maintainer"` + License string `json:"license"` + Copyright string `json:"copyright"` + CopyrightEmail string `json:"copyright_email"` + SHA256 string `json:"sha256"` + NumberOfControls int `json:"number_of_controls"` + Supports []*ServiceNowFailedProfilePlatform `json:"supports"` + Controls []*ServiceNowFailedControl `json:"controls"` + Attributes []*ServiceNowFailedProfileAttribute `json:"attributes"` +} + +type ServiceNowFailedProfilePlatform struct { + InSpec string `json:"inspec"` + OSName string `json:"os_name"` + OSFamily string `json:"os_family"` + Release string `json:"release"` +} + +type ServiceNowFailedProfileAttribute struct { + Name string `json:"name"` + Options *ServiceNowFailedProfileAttributeOptions `json:"options"` +} + +type ServiceNowFailedProfileAttributeOptions struct { + Description string `json:"description"` +} + +type ServiceNowFailedControl struct { + ID string `json:"id"` + Title string `json:"title"` + Desc string `json:"desc"` + Status string `json:"status"` + Impact float64 `json:"impact"` + NumberOfTests int `json:"number_of_tests"` + NumberOfFailedTests int `json:"number_of_failed_tests"` + SourceLocation *ServiceNowFailedControlSourceLocation `json:"source_location"` + Code string `json:"code"` + Refs []*ServiceNowFailedControlRefs `json:"refs"` + Results []*ServiceNowResult `json:"results"` +} + +type ServiceNowFailedControlSourceLocation struct { + Ref string `json:"ref"` + Line int `json:"line"` +} + +type ServiceNowFailedControlRefs struct { + URI string `json:"uri"` + URL string `json:"url"` +} + +type ServiceNowResult struct { + Status string `json:"status"` + Message string `json:"message"` + SkipMessage string `json:"skip_message"` + CodeDesc string `json:"code_desc"` + RunTime float64 `json:"run_time"` + StartTime string `json:"start_time"` +} + +type WebhookMessage struct { + Type string `json:"type"` + NodeName string `json:"node_name"` + FailureSnippet string `json:"failure_snippet"` + ExceptionTitle string `json:"exception_title"` + ExceptionMessage string `json:"exception_message"` + ExceptionBacktrace []string `json:"exception_backtrace"` + AutomateFQDN string `json:"automate_fqdn"` + AutomateFailureURL string `json:"automate_failure_url"` + StartTimeUTC string `json:"start_time_utc"` + EndTimeUTC string `json:"end_time_utc"` +} + +type WebhookComplianceFailureMessage struct { + Type string `json:"type"` + NodeName string `json:"node_name"` + NodeUUID string `json:"node_uuid"` + InspecVersion string `json:"inspec_version"` + AutomateFQDN string `json:"automate_fqdn"` + AutomateFailureURL string `json:"automate_failure_url"` + TotalNumberOfTests int `json:"total_number_of_tests"` + TotalNumberOfSkippedTests int `json:"total_number_of_skipped_tests"` + TotalNumberOfPassedTests int `json:"total_number_of_passed_tests"` + TotalNumberOfFailedTests int `json:"total_number_of_failed_tests"` + NumberOfFailedCriticalTests int `json:"number_of_failed_critical_tests"` + NumberOfCriticalTests int `json:"number_of_critical_tests"` + FailureSnippet string `json:"failure_snippet"` + FailedCriticalProfiles []*WebhookFailedProfile `json:"failed_critical_profiles"` +} + +type WebhookFailedProfile struct { + Name string `json:"name"` + Title string `json:"title"` + Summary string `json:"summary"` + Version string `json:"version"` + Maintainer string `json:"maintainer"` + License string `json:"license"` + Copyright string `json:"copyright"` + CopyrightEmail string `json:"copyright_email"` + SHA256 string `json:"sha256"` + NumberOfControls int `json:"number_of_controls"` + Supports []*WebhookFailedProfilePlatform `json:"supports"` + Controls []*WebhookFailedControl `json:"controls"` + Attributes []*WebhookFailedProfileAttribute `json:"attributes"` +} + +type WebhookFailedProfilePlatform struct { + InSpec string `json:"inspec"` + OSName string `json:"os_name"` + OSFamily string `json:"os_family"` + Release string `json:"release"` +} + +type WebhookFailedProfileAttribute struct { + Name string `json:"name"` + Options *WebhookFailedProfileAttributeOptions `json:"options"` +} + +type WebhookFailedProfileAttributeOptions struct { + Description string `json:"description"` +} + +type WebhookFailedControl struct { + ID string `json:"id"` + Title string `json:"title"` + Desc string `json:"desc"` + Status string `json:"status"` + Impact float64 `json:"impact"` + NumberOfTests int `json:"number_of_tests"` + NumberOfFailedTests int `json:"number_of_failed_tests"` + SourceLocation *WebhookFailedControlSourceLocation `json:"source_location"` + Code string `json:"code"` + Refs []*WebhookFailedControlRefs `json:"refs"` + Results []*WebhookResult `json:"results"` +} + +type WebhookFailedControlSourceLocation struct { + Ref string `json:"ref"` + Line int `json:"line"` +} + +type WebhookFailedControlRefs struct { + URI string `json:"uri"` + URL string `json:"url"` +} + +type WebhookResult struct { + Status string `json:"status"` + Message string `json:"message"` + SkipMessage string `json:"skip_message"` + CodeDesc string `json:"code_desc"` + RunTime float64 `json:"run_time"` + StartTime string `json:"start_time"` +} diff --git a/components/notifications-service/integration_test/rules_crud_test.go b/components/notifications-service/integration_test/rules_crud_test.go new file mode 100644 index 00000000000..6322890c60b --- /dev/null +++ b/components/notifications-service/integration_test/rules_crud_test.go @@ -0,0 +1,466 @@ +package integration_test + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/chef/automate/components/notifications-client/api" + "github.com/chef/automate/lib/pcmp/passert" +) + +func TestGetVersion(t *testing.T) { + res, err := suite.Client.Version(ctx, &api.VersionRequest{}) + require.NoError(t, err) + // In local dev the version string changes to include extra information (in + // the elixir notifications service). Allow any non-empty string here to be + // less brittle. + assert.NotEmpty(t, res.Version) +} + +func TestGetRule(t *testing.T) { + err := suite.DeleteEverything() + assert.NoError(t, err) + + t.Run("returns not found when requesting a rule that doesn't exist", func(t *testing.T) { + res, err := suite.Client.GetRule(ctx, &api.RuleIdentifier{Id: "42"}) + require.NoError(t, err) + assert.Equal(t, api.RuleGetResponse_NOT_FOUND, res.Code) + assert.Empty(t, res.Rule) + }) + + t.Run("returns the rule when the rule exists", func(t *testing.T) { + rule := newValidRule("TestGetRule_success_01") + createResponse, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + require.NotEmpty(t, createResponse.Id) + + res, err := suite.Client.GetRule(ctx, &api.RuleIdentifier{Id: createResponse.Id}) + require.NoError(t, err) + assert.Equal(t, api.RuleGetResponse_OK, res.Code) + + rule.Id = createResponse.Id + passert.Equal(t, rule, res.Rule) + }) +} + +func TestListRules(t *testing.T) { + err := suite.DeleteEverything() + require.NoError(t, err) + + t.Run("Returns an empty list when no rules exist", func(t *testing.T) { + ruleList, err := suite.Client.ListRules(ctx, &api.Empty{}) + require.NoError(t, err) + assert.Empty(t, ruleList.Rules) + }) + + t.Run("Returns the rules when rules exist", func(t *testing.T) { + expectedRuleNames := []string{"TestListRules_success_01", "TestListRules_success_02"} + for _, name := range expectedRuleNames { + _, err := suite.Client.AddRule(ctx, newValidRule(name)) + require.NoError(t, err) + } + + ruleList, err := suite.Client.ListRules(ctx, &api.Empty{}) + require.NoError(t, err) + assert.NotEmpty(t, ruleList.Rules) + actualRuleNames := []string{} + for _, r := range ruleList.Rules { + actualRuleNames = append(actualRuleNames, r.Name) + } + assert.ElementsMatch(t, expectedRuleNames, actualRuleNames) + }) +} + +func TestAddRuleSuccessCase(t *testing.T) { + err := suite.DeleteEverything() + require.NoError(t, err) + + t.Run("valid SlackAlert rule returns a successful response", func(t *testing.T) { + rule := newValidRule("TestAddRule_success_01") + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_ADDED, response.Code) + assert.NotEmpty(t, response.Id) + passert.Equal(t, rule, response.Rule) + }) + t.Run("valid ServiceNowAlert rule returns a successful response", func(t *testing.T) { + rule := newValidRule("TestAddRule_success_02") + rule.Action = &api.Rule_ServiceNowAlert{ + ServiceNowAlert: &api.ServiceNowAlert{ + Url: "https://valid.example/", + }, + } + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_ADDED, response.Code) + assert.NotEmpty(t, response.Id) + passert.Equal(t, rule, response.Rule) + }) + t.Run("valid webhook rule returns a successful response", func(t *testing.T) { + rule := newValidRule("TestAddRule_success_03") + rule.Action = &api.Rule_WebhookAlert{ + WebhookAlert: &api.WebhookAlert{ + Url: "https://valid.example", + }, + } + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_ADDED, response.Code) + assert.NotEmpty(t, response.Id) + passert.Equal(t, rule, response.Rule) + }) +} + +func TestAddRuleValidations(t *testing.T) { + err := suite.DeleteEverything() + require.NoError(t, err) + + t.Run("the Id field must be empty", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_Id") + rule.Id = "43" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "Rule ID may not be included in an add-rule request") + }) + + t.Run("the Name field must not be empty", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_Name") + rule.Name = "" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "Rule name must be supplied.") + }) + + t.Run("the Name must be unique", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_unique") + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_ADDED, response.Code) + assert.NotEmpty(t, response.Id) + + response, err = suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_DUPLICATE_NAME, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "A rule with this name already exists") + }) + + t.Run("the Action field must not be empty", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_Action") + rule.Action = nil + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "Action must be set.") + }) + + t.Run("the URL in a SlackAlert action must not be empty", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_SlackAlertURL") + rule.GetSlackAlert().Url = "" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "A valid action URL must be supplied") + }) + t.Run("the URL in a SlackAlert action must include the protocol/scheme", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_SlackAlertURL") + rule.GetSlackAlert().Url = "example.com" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "A valid action URL must be supplied") + }) + t.Run("the URL in a SlackAlert action must include the hostname", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_SlackAlertURL") + rule.GetSlackAlert().Url = "https://" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "A valid action URL must be supplied") + }) + + t.Run("the URL in a WebhookAlert action must not be empty", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_WebhookAlertURL") + rule.Action = validWebhook() + rule.GetWebhookAlert().Url = "" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "A valid action URL must be supplied") + }) + t.Run("the URL in a WebhookAlert action must include the protocol/scheme", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_WebhookAlertURL") + rule.Action = validWebhook() + rule.GetWebhookAlert().Url = "example.com" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "A valid action URL must be supplied") + }) + t.Run("the URL in a WebhookAlert action must include the hostname", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_WebhookAlertURL") + rule.Action = validWebhook() + rule.GetWebhookAlert().Url = "https://" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "A valid action URL must be supplied") + }) + + t.Run("the URL in a ServiceNowAlert action must not be empty", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_ServiceNowAlertURL") + rule.Action = validServiceNowAlert() + rule.GetServiceNowAlert().Url = "" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "A valid action URL must be supplied") + }) + t.Run("the URL in a ServiceNowAlert action must include the protocol/scheme", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_ServiceNowAlertURL") + rule.Action = validServiceNowAlert() + rule.GetServiceNowAlert().Url = "example.com" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "A valid action URL must be supplied") + }) + t.Run("the URL in a ServiceNowAlert action must include the hostname", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_ServiceNowAlertURL") + rule.Action = validServiceNowAlert() + rule.GetServiceNowAlert().Url = "https://" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "A valid action URL must be supplied") + }) + + t.Run("Multiple error messages are returned when multiple validation rules are not satisfied", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_MuliInvalid") + rule.Action = nil + rule.Name = "" + rule.Id = "42" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_VALIDATION_ERROR, response.Code) + assert.Empty(t, response.Id) + assert.Contains(t, response.Messages, "Action must be set.") + assert.Contains(t, response.Messages, "Rule name must be supplied.") + assert.Contains(t, response.Messages, "Rule ID may not be included in an add-rule request") + }) + + // NOTE: this is a test of a validation that doesn't exist + // NOTE: it's unclear to me if this behavior is correct. It's how the + // original elixir implementation behaves. + t.Run("the SecretId in a ServiceNowAlert action can be blank", func(t *testing.T) { + rule := newValidRule("TestAddRule_validations_ServiceNowAlert_SecretId") + rule.Action = validServiceNowAlert() + rule.GetServiceNowAlert().SecretId = "" + response, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_ADDED, response.Code) + assert.NotEmpty(t, response.Id) + assert.Empty(t, response.Messages) + }) + +} + +func TestUpdateRuleSuccess(t *testing.T) { + err := suite.DeleteEverything() + require.NoError(t, err) + + t.Run("valid rule returns a successful response", func(t *testing.T) { + rule := newValidRule("TestAddRule_success_01") + createResponse, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_ADDED, createResponse.Code) + + rule.Id = createResponse.Id + rule.GetSlackAlert().Url = "https://newurl.example" + response, err := suite.Client.UpdateRule(ctx, rule) + require.NoError(t, err) + assert.Empty(t, response.Messages) + assert.Equal(t, api.RuleUpdateResponse_OK, response.Code) + }) + + t.Run("update can modify the rule name", func(t *testing.T) { + rule := newValidRule("TestAddRule_success_02") + createResponse, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_ADDED, createResponse.Code) + + rule.Id = createResponse.Id + rule.Name = "TestAddRule_success_02_updated_value" + response, err := suite.Client.UpdateRule(ctx, rule) + require.NoError(t, err) + assert.Empty(t, response.Messages) + assert.Equal(t, api.RuleUpdateResponse_OK, response.Code) + + updated, err := suite.Client.GetRule(ctx, &api.RuleIdentifier{Id: createResponse.Id}) + require.NoError(t, err) + assert.Equal(t, "TestAddRule_success_02_updated_value", updated.Rule.Name) + }) + + t.Run("update can modify the action", func(t *testing.T) { + rule := newValidRule("TestAddRule_success_02") + createResponse, err := suite.Client.AddRule(ctx, rule) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_ADDED, createResponse.Code) + + rule.Id = createResponse.Id + rule.Action = validServiceNowAlert() + + response, err := suite.Client.UpdateRule(ctx, rule) + require.NoError(t, err) + assert.Empty(t, response.Messages) + assert.Equal(t, api.RuleUpdateResponse_OK, response.Code) + + updated, err := suite.Client.GetRule(ctx, &api.RuleIdentifier{Id: createResponse.Id}) + require.NoError(t, err) + passert.Equal(t, validServiceNowAlert().ServiceNowAlert, updated.Rule.GetServiceNowAlert()) + }) + +} + +func TestUpdateRuleValidation(t *testing.T) { + err := suite.DeleteEverything() + require.NoError(t, err) + + ruleToCreate := newValidRule("TestUpdateRule_validations") + created, err := suite.Client.AddRule(ctx, ruleToCreate) + require.NoError(t, err) + createdRule := created.Rule + createdRule.Id = created.Id + + t.Run("the Id field must not be empty", func(t *testing.T) { + updatedRule := copyRule(createdRule) + updatedRule.Id = "" + response, err := suite.Client.UpdateRule(ctx, updatedRule) + require.NoError(t, err) + assert.Equal(t, api.RuleUpdateResponse_VALIDATION_ERROR, response.Code) + assert.Contains(t, response.Messages, "Rule ID must be included from the rule being modified") + }) + + t.Run("the Id field must refer to a rule that exists", func(t *testing.T) { + updatedRule := copyRule(createdRule) + updatedRule.Id = "42" + response, err := suite.Client.UpdateRule(ctx, updatedRule) + require.NoError(t, err) + assert.Equal(t, api.RuleUpdateResponse_NOT_FOUND, response.Code) + assert.Contains(t, response.Messages, "The requested rule could not be found") + }) + + t.Run("the Name field must not be empty", func(t *testing.T) { + updatedRule := copyRule(createdRule) + updatedRule.Name = "" + response, err := suite.Client.UpdateRule(ctx, updatedRule) + require.NoError(t, err) + assert.Equal(t, api.RuleUpdateResponse_VALIDATION_ERROR, response.Code) + assert.Contains(t, response.Messages, "Rule name must be supplied.") + }) + + t.Run("the Name must be unique", func(t *testing.T) { + rule2 := newValidRule("TestAddRule_validations_unique") + res, err := suite.Client.AddRule(ctx, rule2) + require.NoError(t, err) + assert.Equal(t, api.RuleAddResponse_ADDED, res.Code) + assert.NotEmpty(t, res.Id) + + updatedRule := copyRule(createdRule) + updatedRule.Name = "TestAddRule_validations_unique" + response, err := suite.Client.UpdateRule(ctx, updatedRule) + require.NoError(t, err) + // NOTE: the elixir implementation does not check for the case that an + // update would violate the uniqueness constraint on the name column, so it + // returns an internal error when the db request fails on the contstraint + // violation. This is a bug, but we don't plan to change the behavior until + // after the elixir implementation is replaced. + assert.NotEqual(t, api.RuleUpdateResponse_OK, response.Code) + //assert.Equal(t, api.RuleUpdateResponse_DUPLICATE_NAME, response.Code) + //assert.Contains(t, response.Messages, "A rule with this name already exists") + }) + + t.Run("the Action field must not be empty", func(t *testing.T) { + updatedRule := copyRule(createdRule) + updatedRule.Action = nil + response, err := suite.Client.UpdateRule(ctx, updatedRule) + require.NoError(t, err) + assert.Equal(t, api.RuleUpdateResponse_VALIDATION_ERROR, response.Code) + assert.Contains(t, response.Messages, "Action must be set.") + }) + + // NOTE: UpdateRule is expected to apply the same validations to the actions + // as AddRule does. We don't explicitly test those because it's repetitive +} + +func TestDeleteRule(t *testing.T) { + err := suite.DeleteEverything() + require.NoError(t, err) + + ruleToCreate := newValidRule("TestUpdateRule_validations") + created, err := suite.Client.AddRule(ctx, ruleToCreate) + require.NoError(t, err) + + t.Run("deleting an existing rule succeeds", func(t *testing.T) { + response, err := suite.Client.DeleteRule(ctx, &api.RuleIdentifier{Id: created.Id}) + require.NoError(t, err) + assert.Equal(t, api.RuleDeleteResponse_DELETED, response.Code) + }) + + t.Run("deleting a rule that doesn't exist returns an error", func(t *testing.T) { + response, err := suite.Client.DeleteRule(ctx, &api.RuleIdentifier{Id: "5"}) + require.NoError(t, err) + assert.Equal(t, api.RuleDeleteResponse_NOT_FOUND, response.Code) + }) +} + +func copyRule(r *api.Rule) *api.Rule { + // NOTE: shallow copy. This will work as long as you only modify r2 by + // assigning a new value for a field. + r2 := *r + return &r2 +} + +func newValidRule(name string) *api.Rule { + return &api.Rule{ + Event: api.Rule_CCRFailure, + Name: name, + Action: &api.Rule_SlackAlert{ + SlackAlert: &api.SlackAlert{ + Url: "https://slack.example", + }, + }, + } +} + +func validWebhook() *api.Rule_WebhookAlert { + return &api.Rule_WebhookAlert{ + WebhookAlert: &api.WebhookAlert{Url: "https://webhook.example"}, + } +} + +func validServiceNowAlert() *api.Rule_ServiceNowAlert { + return &api.Rule_ServiceNowAlert{ + ServiceNowAlert: &api.ServiceNowAlert{ + Url: "https://servicenow.example", + SecretId: "supersecret", + CriticalControlsOnly: false, + }, + } +} diff --git a/components/notifications-service/integration_test/suite_test.go b/components/notifications-service/integration_test/suite_test.go new file mode 100644 index 00000000000..2e97459998a --- /dev/null +++ b/components/notifications-service/integration_test/suite_test.go @@ -0,0 +1,108 @@ +package integration_test + +import ( + "context" + "fmt" + "os" + "testing" + + "github.com/chef/automate/api/external/secrets" + deploymentConst "github.com/chef/automate/components/automate-deployment/pkg/constants" + "github.com/chef/automate/components/notifications-client/api" + "github.com/chef/automate/lib/grpc/secureconn" + "github.com/chef/automate/lib/tls/certs" +) + +var ( + suite = &Suite{} + ctx = context.Background() +) + +// Suite holds any global state needed for the test run and implements +// GlobalSetup and GlobalTeardown methods. +type Suite struct { + Client api.NotificationsClient + SecretsClient secrets.SecretsServiceClient +} + +func (s *Suite) GlobalSetup() error { + // Sometimes in local dev we do partial deployments with just a few services, + // but the deployment-service should always be there. Using deployment's + // certs should always work. + deploymentCerts := certs.TLSConfig{ + CertPath: deploymentConst.CertPath, + KeyPath: deploymentConst.KeyPath, + RootCACertPath: deploymentConst.RootCertPath, + } + certData, err := deploymentCerts.ReadCerts() + if err != nil { + return err + } + + mutTLSFactory := secureconn.NewFactory(*certData) + notificationsEndpoint, err := mutTLSFactory.Dial("notifications-service", "localhost:10125") + if err != nil { + return err + } + + s.Client = api.NewNotificationsClient(notificationsEndpoint) + + secretsEndpoint, err := mutTLSFactory.Dial("secrets-service", "localhost:10131") + if err != nil { + return err + } + s.SecretsClient = secrets.NewSecretsServiceClient(secretsEndpoint) + + return s.DeleteEverything() +} + +func (s *Suite) GlobalTeardown() error { + return s.DeleteEverything() +} + +func (s *Suite) DeleteEverything() error { + ruleList, err := s.Client.ListRules(ctx, &api.Empty{}) + if err != nil { + return err + } + for _, r := range ruleList.Rules { + _, err := s.Client.DeleteRule(ctx, &api.RuleIdentifier{Id: r.Id}) + if err != nil { + return nil + } + } + return nil +} + +// TestMain allow us to run a setup before running our tests and also +// teardown everything after we have finished testing. +// +// (Check out 'suite_test.go') +// +// => Docs: https://golang.org/pkg/testing/#hdr-Main +func TestMain(m *testing.M) { + // Global Setup hook: Here is where you can initialize anythings you need + // for your tests to run + err := suite.GlobalSetup() + if err != nil { + fmt.Println("Test suite failed during GlobalSetup") + fmt.Println(err) + os.Exit(1) + } + + // Execute the test suite and record the exit code + exitCode := m.Run() + + // Teardown hook: It says it all + err = suite.GlobalTeardown() + if err != nil { + fmt.Println("Test suite failed during GlobalTeardown") + fmt.Println(err) + if exitCode != 0 { + os.Exit(2) + } + } + + // call with result of m.Run() + os.Exit(exitCode) +} diff --git a/components/notifications-service/integration_test/webhook_validator_test.go b/components/notifications-service/integration_test/webhook_validator_test.go new file mode 100644 index 00000000000..c316b35576a --- /dev/null +++ b/components/notifications-service/integration_test/webhook_validator_test.go @@ -0,0 +1,133 @@ +package integration_test + +import ( + "testing" + + "github.com/chef/automate/api/external/common/query" + "github.com/chef/automate/api/external/secrets" + "github.com/chef/automate/components/notifications-client/api" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestWebhookValidator(t *testing.T) { + t.Run("with a malformed URL, the webhook validator returns an 'invalid URL' response", func(t *testing.T) { + res, err := suite.Client.ValidateWebhook(ctx, &api.URLValidationRequest{ + Url: "malformed_URL_input", + Credentials: &api.URLValidationRequest_None{}, + }) + require.NoError(t, err) + assert.Equal(t, api.URLValidationResponse_INVALID_URL, res.Code) + }) + + t.Run("with a URL for a service that isn't running, the webhook validator returns an error", func(t *testing.T) { + ts := newTestServer() + // Note this is closed immediately instead of defered, so the server will be down. + ts.Close() + + res, err := suite.Client.ValidateWebhook(ctx, &api.URLValidationRequest{ + Url: ts.SlackURL(), + Credentials: &api.URLValidationRequest_None{}, + }) + require.NoError(t, err) + assert.Equal(t, api.URLValidationResponse_ERROR, res.Code) + }) + + t.Run("with a valid URL and no credentials, the webhook validator succeeds", func(t *testing.T) { + ts := newTestServer() + defer ts.Close() + + res, err := suite.Client.ValidateWebhook(ctx, &api.URLValidationRequest{ + Url: ts.SlackURL(), + Credentials: &api.URLValidationRequest_None{}, + }) + require.NoError(t, err) + assert.Equal(t, api.URLValidationResponse_OK, res.Code) + + postData := ts.GetLastPost() + assert.NotNil(t, postData) + }) + + t.Run("with a valid URL and username/password creds, the webhook validator succeeds", func(t *testing.T) { + ts := newTestServer() + defer ts.Close() + + res, err := suite.Client.ValidateWebhook(ctx, &api.URLValidationRequest{ + Url: ts.SlackURL(), + Credentials: &api.URLValidationRequest_UsernamePassword{ + UsernamePassword: &api.UsernamePassword{ + Username: "integration_test_username", + Password: "integration_test_password", + }, + }, + }) + require.NoError(t, err) + assert.Equal(t, api.URLValidationResponse_OK, res.Code) + + postData := ts.GetLastPost() + assert.NotNil(t, postData) + + assert.True(t, postData.BasicAuthUsed) + assert.Equal(t, "integration_test_username", postData.BasicAuthUsername) + assert.Equal(t, "integration_test_password", postData.BasicAuthPassword) + }) + + t.Run("with a valid URL and secret ID creds, and the secret ID **IS NOT** in the secrets store, the webhook validator succeeds", func(t *testing.T) { + ts := newTestServer() + defer ts.Close() + + res, err := suite.Client.ValidateWebhook(ctx, &api.URLValidationRequest{ + Url: ts.SlackURL(), + Credentials: &api.URLValidationRequest_SecretId{ + SecretId: &api.SecretId{ + Id: "integration_test_secret_id_NOEXIST", + }, + }, + }) + require.NoError(t, err) + assert.Equal(t, api.URLValidationResponse_OK, res.Code) + + postData := ts.GetLastPost() + assert.NotNil(t, postData) + assert.False(t, postData.BasicAuthUsed) + }) + + t.Run("with a valid URL and secret ID creds, and the secret ID **IS** in the secrets store, the webhook validator succeeds", func(t *testing.T) { + ts := newTestServer() + defer ts.Close() + + sres, err := suite.SecretsClient.Create(ctx, &secrets.Secret{ + Id: "integration_test_secret_id", + Name: "integration_test_secret_id", + Type: "service_now", + Data: []*query.Kv{ + &query.Kv{Key: "username", Value: "integration_test_username_secretstore"}, + &query.Kv{Key: "password", Value: "integration_test_password_secretstore"}, + }, + }) + require.NoError(t, err) + require.NotEmpty(t, sres.Id) + + secretID := sres.Id + defer func() { + suite.SecretsClient.Delete(ctx, &secrets.Id{Id: secretID}) + }() + + res, err := suite.Client.ValidateWebhook(ctx, &api.URLValidationRequest{ + Url: ts.SlackURL(), + Credentials: &api.URLValidationRequest_SecretId{ + SecretId: &api.SecretId{ + Id: secretID, + }, + }, + }) + require.NoError(t, err) + assert.Equal(t, api.URLValidationResponse_OK, res.Code) + + postData := ts.GetLastPost() + assert.NotNil(t, postData) + assert.True(t, postData.BasicAuthUsed) + assert.Equal(t, "integration_test_username_secretstore", postData.BasicAuthUsername) + assert.Equal(t, "integration_test_password_secretstore", postData.BasicAuthPassword) + }) +} From 70f00227b3456da9422a87a71fcf4565b0cb7e2e Mon Sep 17 00:00:00 2001 From: Ian Maddaus Date: Mon, 8 Feb 2021 20:47:07 -0800 Subject: [PATCH 14/34] Fix links (#4671) Signed-off-by: Ian Maddaus --- components/docs-chef-io/Makefile | 1 + components/docs-chef-io/config.toml | 2 ++ .../docs-chef-io/content/automate/_index.md | 4 ++-- .../automate/airgapped_installation.md | 4 ++-- .../docs-chef-io/content/automate/api.md | 4 ++-- .../content/automate/api_tokens.md | 4 ++-- .../automate/applications_dashboard.md | 6 +++--- .../content/automate/applications_setup.md | 21 ++++++++++--------- .../automate/architectural_overview.md | 4 ++-- .../docs-chef-io/content/automate/backup.md | 4 ++-- .../content/automate/cli_chef_automate.md | 4 ++-- .../content/automate/client_runs.md | 4 ++-- .../content/automate/configuration.md | 6 +++--- .../content/automate/data_collection.md | 4 ++-- .../content/automate/data_lifecycle.md | 4 ++-- .../docs-chef-io/content/automate/datafeed.md | 4 ++-- .../docs-chef-io/content/automate/desktop.md | 4 ++-- .../docs-chef-io/content/automate/eas.md | 8 +++---- .../content/automate/elasticsearch.md | 3 ++- .../content/automate/event_feed.md | 4 ++-- .../docs-chef-io/content/automate/flags.md | 4 ++-- .../content/automate/iam_actions.md | 4 ++-- .../content/automate/iam_v2_guide.md | 4 ++-- .../content/automate/iam_v2_overview.md | 4 ++-- .../content/automate/infra_server.md | 4 ++-- .../docs-chef-io/content/automate/install.md | 4 ++-- .../docs-chef-io/content/automate/ldap.md | 4 ++-- .../content/automate/log_management.md | 4 ++-- .../docs-chef-io/content/automate/migrate.md | 6 +++--- .../content/automate/monitoring.md | 4 ++-- .../content/automate/node_credentials.md | 4 ++-- .../content/automate/node_integrations.md | 4 ++-- .../docs-chef-io/content/automate/nodes.md | 4 ++-- .../content/automate/notifications.md | 4 ++-- .../content/automate/on_prem_builder.md | 12 +++++------ .../docs-chef-io/content/automate/policies.md | 4 ++-- .../docs-chef-io/content/automate/profiles.md | 4 ++-- .../docs-chef-io/content/automate/projects.md | 4 ++-- .../docs-chef-io/content/automate/reports.md | 4 ++-- .../docs-chef-io/content/automate/restore.md | 4 ++-- .../docs-chef-io/content/automate/roles.md | 4 ++-- .../docs-chef-io/content/automate/saml.md | 4 ++-- .../content/automate/scan_jobs.md | 4 ++-- .../servicenow_integration_install.md | 4 ++-- .../content/automate/system_requirements.md | 4 ++-- .../docs-chef-io/content/automate/teams.md | 4 ++-- .../content/automate/telemetry.md | 4 ++-- .../content/automate/troubleshooting.md | 4 ++-- .../docs-chef-io/content/automate/users.md | 4 ++-- 49 files changed, 115 insertions(+), 110 deletions(-) create mode 100644 components/docs-chef-io/config.toml diff --git a/components/docs-chef-io/Makefile b/components/docs-chef-io/Makefile index 99291e37dc8..8479a10eaa0 100644 --- a/components/docs-chef-io/Makefile +++ b/components/docs-chef-io/Makefile @@ -11,6 +11,7 @@ preview_netlify: chef_web_docs cp -R data/* chef-web-docs/_vendor/github.com/chef/automate/components/docs-chef-io/data cp -R layouts/* chef-web-docs/_vendor/github.com/chef/automate/components/docs-chef-io/layouts cp -R static/* chef-web-docs/_vendor/github.com/chef/automate/components/docs-chef-io/static + cp -R config.toml chef-web-docs/_vendor/github.com/chef/automate/components/docs-chef-io/ pushd chef-web-docs && make assets; hugo --buildFuture --gc --minify && popd serve: generate_swagger chef_web_docs diff --git a/components/docs-chef-io/config.toml b/components/docs-chef-io/config.toml new file mode 100644 index 00000000000..46c40942b05 --- /dev/null +++ b/components/docs-chef-io/config.toml @@ -0,0 +1,2 @@ +[params.automate] +gh_path = "https://github.com/chef/automate/blob/master/components/docs-chef-io/content/" diff --git a/components/docs-chef-io/content/automate/_index.md b/components/docs-chef-io/content/automate/_index.md index e2661af7cc0..cb53b6476f3 100644 --- a/components/docs-chef-io/content/automate/_index.md +++ b/components/docs-chef-io/content/automate/_index.md @@ -4,6 +4,8 @@ title = "Quick Start Demo" weight = 10 draft = false +gh_repo = "automate" + [menu] [menu.automate] title = "Quick Start Demo" @@ -12,8 +14,6 @@ draft = false weight = 10 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/_index.md) - Hello and welcome to Chef Automate! This Quickstart guides you through the initial installation and trial activation. The easiest way to start exploring Chef Automate is to install it on a local virtual machine (VM). diff --git a/components/docs-chef-io/content/automate/airgapped_installation.md b/components/docs-chef-io/content/automate/airgapped_installation.md index 0fd8d65996f..91dd19b7987 100644 --- a/components/docs-chef-io/content/automate/airgapped_installation.md +++ b/components/docs-chef-io/content/automate/airgapped_installation.md @@ -3,6 +3,8 @@ title = "Airgapped Installation" draft = false +gh_repo = "automate" + [menu] [menu.automate] title = "Airgapped Installation" @@ -11,8 +13,6 @@ draft = false weight = 40 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/airgapped_installation.md) - ## Overview An airgapped host is one that has no direct inbound or outbound internet diff --git a/components/docs-chef-io/content/automate/api.md b/components/docs-chef-io/content/automate/api.md index 735cbbf3a05..aa2acd60e39 100644 --- a/components/docs-chef-io/content/automate/api.md +++ b/components/docs-chef-io/content/automate/api.md @@ -4,6 +4,8 @@ title = "Chef Automate API" date = 2019-03-06T17:25:30-07:00 draft = false +gh_repo = "automate" + layout = "data-api" style_sheet = "/automate-api-styles.css" api_file_path = "/automate-api-docs/all-apis.swagger.json" @@ -17,5 +19,3 @@ return_page = "/automate/" weight = 20 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/api.md) - diff --git a/components/docs-chef-io/content/automate/api_tokens.md b/components/docs-chef-io/content/automate/api_tokens.md index 3eabf1029b4..42364b599d3 100644 --- a/components/docs-chef-io/content/automate/api_tokens.md +++ b/components/docs-chef-io/content/automate/api_tokens.md @@ -2,6 +2,8 @@ title = "API Tokens" draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "API Tokens" @@ -10,8 +12,6 @@ draft = false weight = 80 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/api_tokens.md) - ## Overview API Tokens are used to access the Chef Automate API. They are the only way to authenticate against the Chef Automate API. Tokens can be added as members of policies in order to grant them permissions. diff --git a/components/docs-chef-io/content/automate/applications_dashboard.md b/components/docs-chef-io/content/automate/applications_dashboard.md index cc983227dbc..159e53be9a0 100644 --- a/components/docs-chef-io/content/automate/applications_dashboard.md +++ b/components/docs-chef-io/content/automate/applications_dashboard.md @@ -3,6 +3,8 @@ title = "Applications Dashboard" date = 2019-10-18T18:54:09+00:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Applications Dashboard" @@ -11,8 +13,6 @@ draft = false weight = 30 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/applications_dashboard.md) - The Chef Automate *Applications* dashboard allows you to organize and display your applications data from Chef Habitat in an intuitive way. Chef Automate organizes data from the application and environment tags provided by the Chef Habitat supervisor. Under the Chef Automate *Applications* dashboard, the _Service Groups_ display lets you understand the status of your Chef Habitat services, even when scaling out to large numbers of services. @@ -109,4 +109,4 @@ The default time for a node to report to Chef Automate is 5 minutes. Chef Habitat sends the health check messages every 30 seconds by default. Configure this setting using the `--health-check-interval` option with the `hab sup run` command. -See the [Habitat CLI documentation](https://www.habitat.sh/docs/habitat-cli/#hab-sup-run) for more information. +See the [Habitat CLI documentation]({{< relref "/habitat/habitat_cli#hab-sup-run" >}}) for more information. diff --git a/components/docs-chef-io/content/automate/applications_setup.md b/components/docs-chef-io/content/automate/applications_setup.md index bf0fd93538f..7d5f057099d 100644 --- a/components/docs-chef-io/content/automate/applications_setup.md +++ b/components/docs-chef-io/content/automate/applications_setup.md @@ -3,6 +3,8 @@ title = "Setting up the Applications Dashboard" date = 2019-10-18T18:54:09+00:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Setting up the Applications Dashboard" @@ -11,12 +13,12 @@ draft = false weight = 20 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/applications_setup.md) + +Further information about writing Chef Habitat health check hooks can be found in the https://docs.chef.io/habitat/application_lifecycle_hooks#health-check "Chef Habitat documentation". --> This Enterprise Application Stack (EAS) integration gives you immediate insight into the status of your Chef Habitat services, even when scaling out to large numbers of services. @@ -47,7 +49,7 @@ For best results: For services that do not follow this layout, you should select environment and application names that help you find and filter the application data and are relevant to your typical job tasks. -For more information on setting up Chef Habitat, see the Chef Habitat [Service Groups](https://www.habitat.sh/docs/using-habitat/#service-groups) documentation. +For more information on setting up Chef Habitat, see the Chef Habitat [Service Groups]({{< relref "/habitat/about_services#service-group" >}}) documentation. ## Setting up the Applications Dashboard @@ -73,7 +75,7 @@ hab sup run \ --event-stream-token="API_TOKEN" \ ``` -* [hab sup run](https://www.habitat.sh/docs/habitat-cli/#hab-sup-run) is the hab cli commant to start the Habitat supervisor. +* [hab sup run]({{< relref "/habitat/habitat_cli#hab-sup-run" >}}) is the hab cli commant to start the Habitat supervisor. * `MY_APP` is the name of your application. Chef Automate groups services by application name in the Applications Dashboard * `MY_ENV` is the application environment for this supervisor. Chef Automate groups services by environment in the Applications Dashboard * `MY_SITE` describes the physical (for example, datacenter) or cloud-specific (for example, the AWS region) location where your services are deployed. The site field is a value filtering for services in the Applications Dashboard. @@ -248,11 +250,10 @@ If you are using a certificate signed by a trusted certificate authority instead For more information, check out this further explanation on how to [configure Builder to authenticate via Chef Automate](https://github.com/habitat-sh/on-prem-builder). ## Related Resources -For more information, see the [Chef Habitat documentation](https://www.habitat.sh/docs). +For more information, see the [Chef Habitat documentation]({{< relref "/habitat" >}}). In particular, see the entries on: -* [Chef Habitat Best Practices](https://www.habitat.sh/docs/best-practices/) -* [Service Groups](https://www.habitat.sh/docs/using-habitat/#service-groups) -* [Services](https://www.habitat.sh/docs/glossary/#glossary-services) -* [Supervisor](https://www.habitat.sh/docs/glossary/#glossary-supervisor) -* [Topology](https://www.habitat.sh/docs/glossary/#topology) +* [Service Groups]({{< relref "/habitat/service_groups" >}}) +* [Services]({{< relref "/habitat/about_services" >}}) +* [Supervisor]({{< relref "/habitat/sup" >}}) +* [Topology]({{< relref "/habitat/about_services#topology" >}}) diff --git a/components/docs-chef-io/content/automate/architectural_overview.md b/components/docs-chef-io/content/automate/architectural_overview.md index 24d09ce1167..096623cdabf 100644 --- a/components/docs-chef-io/content/automate/architectural_overview.md +++ b/components/docs-chef-io/content/automate/architectural_overview.md @@ -2,6 +2,8 @@ title = "Architecture" draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Architecture" @@ -10,8 +12,6 @@ draft = false weight = 10 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/architectural_overview.md) - ## Automate 2 Architecture ![Automate 2 Architecture](/images/automate/a2-architecture.png) diff --git a/components/docs-chef-io/content/automate/backup.md b/components/docs-chef-io/content/automate/backup.md index 41965ba011c..3921515a2b9 100644 --- a/components/docs-chef-io/content/automate/backup.md +++ b/components/docs-chef-io/content/automate/backup.md @@ -3,6 +3,8 @@ title = "Backup" date = 2018-03-26T15:27:52-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Backup" @@ -11,8 +13,6 @@ draft = false weight = 70 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/backup.md) - Backups are crucial for protecting your data from catastrophic loss and preparing a recovery procedure. The `chef-automate backup create` command creates a single backup that contains data for all products deployed with Chef Automate, including [Chef Infra Server]({{< ref "infra_server.md" >}}) and [Chef Habitat Builder on-prem]({{< ref "on_prem_builder.md" >}}). By default, Chef Automate stores backups to the filesystem in the directory `/var/opt/chef-automate/backups`. diff --git a/components/docs-chef-io/content/automate/cli_chef_automate.md b/components/docs-chef-io/content/automate/cli_chef_automate.md index 1470908a27c..47fdf432789 100644 --- a/components/docs-chef-io/content/automate/cli_chef_automate.md +++ b/components/docs-chef-io/content/automate/cli_chef_automate.md @@ -3,6 +3,8 @@ title = "chef-automate CLI" date = 2018-03-26T15:29:24-07:00 draft = false + +gh_repo = "automate" toc_layout = "cli_chef_automate_toc" [menu] @@ -13,8 +15,6 @@ toc_layout = "cli_chef_automate_toc" weight = 20 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/cli_chef_automate.md) - ## Automate CLI Commands {{< automate_cli_commands data_path="automate/cli_chef_automate/commands" >}} diff --git a/components/docs-chef-io/content/automate/client_runs.md b/components/docs-chef-io/content/automate/client_runs.md index 5caeba005a2..f536ed99dd9 100644 --- a/components/docs-chef-io/content/automate/client_runs.md +++ b/components/docs-chef-io/content/automate/client_runs.md @@ -3,6 +3,8 @@ title = "Client Runs" date = 2018-03-26T16:01:58-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Client Runs" @@ -11,8 +13,6 @@ draft = false weight = 60 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/client_runs.md) - ## Overview The _Client Runs_ page shows all nodes connected to Chef Automate, either directly or via a Chef Infra Server proxy. diff --git a/components/docs-chef-io/content/automate/configuration.md b/components/docs-chef-io/content/automate/configuration.md index bd945cdfd14..e71de4a7447 100644 --- a/components/docs-chef-io/content/automate/configuration.md +++ b/components/docs-chef-io/content/automate/configuration.md @@ -3,6 +3,8 @@ title = "Configuration" date = 2018-05-08T18:54:09+00:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Configuration" @@ -11,8 +13,6 @@ draft = false weight = 10 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/configuration.md) - The `chef-automate` CLI provides commands to help you work with your existing Chef Automate configuration: * `chef-automate config show` shows your current configuration, not including default settings @@ -42,7 +42,7 @@ Then run `chef-automate config patch ` to deploy your c #### Install Channel -Chef Automate consists of [Habitat](https://www.habitat.sh/) packages installed from a release channel. +Chef Automate consists of [Habitat]({{< relref "habitat">}}) packages installed from a release channel. The default channel is `current`. #### Upgrade Strategy diff --git a/components/docs-chef-io/content/automate/data_collection.md b/components/docs-chef-io/content/automate/data_collection.md index 2e6b5ab5c1a..b7aabc25910 100644 --- a/components/docs-chef-io/content/automate/data_collection.md +++ b/components/docs-chef-io/content/automate/data_collection.md @@ -2,6 +2,8 @@ title = "Data Collection" draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Data Collection" @@ -10,8 +12,6 @@ draft = false weight = 20 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/data_collection.md) - # Audit Cookbook + Inspec + Automate 2 Versions Support Matrix Refer to the [following Supported Versions list](https://github.com/chef-cookbooks/audit#chef-automate) to confirm a full set of working versions for your chef-client, Audit cookbook, Inspec, and Automate 2. When these do not match up, ingestion problems can occur because the messages will not show up in the expected format. diff --git a/components/docs-chef-io/content/automate/data_lifecycle.md b/components/docs-chef-io/content/automate/data_lifecycle.md index 4e693c57748..b76cf0f8492 100644 --- a/components/docs-chef-io/content/automate/data_lifecycle.md +++ b/components/docs-chef-io/content/automate/data_lifecycle.md @@ -2,6 +2,8 @@ title = "Data Lifecycle" description = "Chef Automate Data Lifecycle: Data Management and Data Retention" draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Data Lifecycle" @@ -10,8 +12,6 @@ draft = false weight = 30 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/data_lifecycle.md) - Data Lifecycle manages the retention of events, service groups, Chef Infra Client runs, compliance reports and scans in Chef Automate. Chef Automate stores data from the ingest-service,event-feed-service, compliance-service and applications-service in Elasticsearch or PostgreSQL. Over time, you may wish to remove that data from Chef Automate by using the data lifecycle settings. diff --git a/components/docs-chef-io/content/automate/datafeed.md b/components/docs-chef-io/content/automate/datafeed.md index 8aecbaa88e6..020d4e187d3 100644 --- a/components/docs-chef-io/content/automate/datafeed.md +++ b/components/docs-chef-io/content/automate/datafeed.md @@ -3,6 +3,8 @@ title = "Data Feeds" date = 2020-05-05T13:19:02-07:00 draft = false +gh_repo = "automate" + [menu] [menu.automate] title = "Data Feeds" @@ -11,8 +13,6 @@ draft = false weight = 20 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/datafeed.md) - {{< note >}} Data Feed is a beta feature in active development. To enable Data Feed, first select anywhere on the Chef Automate interface and enter 'feat' to open the feature flags window and then toggle "Chef Automate Data Feed" to the "ON" position. {{< /note >}} diff --git a/components/docs-chef-io/content/automate/desktop.md b/components/docs-chef-io/content/automate/desktop.md index 2e519ae4e35..aa6ee56aefe 100644 --- a/components/docs-chef-io/content/automate/desktop.md +++ b/components/docs-chef-io/content/automate/desktop.md @@ -3,6 +3,8 @@ title = "Desktop Dashboard" date = 2018-03-26T16:01:47-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Desktop Dashboard" @@ -11,8 +13,6 @@ draft = false weight = 50 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/desktop.md) - The Chef Automate _Desktop_ dashboard displays status information about all desktops connected to Chef Automate. Desktop information populates this dashboard after a Chef Infra Client run has executed. diff --git a/components/docs-chef-io/content/automate/eas.md b/components/docs-chef-io/content/automate/eas.md index e9dcb15c310..a53cc2a7306 100644 --- a/components/docs-chef-io/content/automate/eas.md +++ b/components/docs-chef-io/content/automate/eas.md @@ -3,6 +3,8 @@ title = "Chef EAS" date = 2019-10-18T18:54:09+00:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Chef EAS" @@ -11,8 +13,6 @@ draft = false weight = 10 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/eas.md) - The Chef Enterprise Application Stack (EAS) allows organizations to automate infrastructure, security, and application delivery together, helping them deploy software quickly while maintaining compliance with industry regulations. Chef EAS helps teams drive efficiency and consistency for any application across multi-cloud and heterogeneous infrastructure. Chef EAS includes the following Chef solutions: @@ -64,7 +64,7 @@ In most cases, artifacts have three possible channels: "unstable", "testing", an When you upload your artifact to Builder, Chef Habitat labels your application artifact with the `unstable` tag, which means that it is in the "unstable" channel. When you promote your application artifact to another channel, such as "test" or "stable", Chef Habitat applies the new tag and makes it available to the respective channel. You can apply more than one tag to a single artifact, for example, artifacts are often tagged for both the "unstable" and "test" channels. -For more information, see the Chef Habitat [Continuous Deployment Using Channels](https://www.habitat.sh/docs/using-habitat/#continuous-deployment-using-channels) documentation. +For more information, see the Chef Habitat [Continuous Deployment Using Channels]({{< relref "/habitat/pkg_promote#continuous-deployment-using-channels" >}}) documentation. _Deployment_ - Each instance of an artifact downloaded from a channel into an environment is called a deployment. @@ -78,7 +78,7 @@ _Supervisor_ - The Supervisor is Chef Habitat's process manager, which means it controls the processes related to a package, including starting, monitoring, and updating services. Each Supervisor runs a single instance of a service. Each Supervisor in an environment subscribes to a channel, which means they watch for new versions of services promoted in that channel. Once a supervisor detects a new artifact in a channel, it deploys the new package into its own environment and updates all of the services for that service group. -For more information about automated deployments, see the Chef Habitat [update-strategy](https://www.habitat.sh/docs/using-habitat/#update-strategy) documentation. +For more information about automated deployments, see the Chef Habitat [update-strategy]({{< relref "/habitat/service_group_updates#configuring-an-update-strategy" >}}) documentation. _Service_ - A service is any single running instance of a Chef Habitat package running in an environment and managed by a Supervisor. diff --git a/components/docs-chef-io/content/automate/elasticsearch.md b/components/docs-chef-io/content/automate/elasticsearch.md index 66c84c2912d..221251102c6 100644 --- a/components/docs-chef-io/content/automate/elasticsearch.md +++ b/components/docs-chef-io/content/automate/elasticsearch.md @@ -2,6 +2,8 @@ title = "Elasticsearch" draft = true +gh_repo = "automate" + [menu] [menu.automate] title = "Elasticsearch" @@ -10,4 +12,3 @@ draft = true weight = 30 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/elasticsearch.md) diff --git a/components/docs-chef-io/content/automate/event_feed.md b/components/docs-chef-io/content/automate/event_feed.md index d5cfb7bc105..1326985bf4f 100644 --- a/components/docs-chef-io/content/automate/event_feed.md +++ b/components/docs-chef-io/content/automate/event_feed.md @@ -3,6 +3,8 @@ title = "Event Feed" date = 2018-03-26T16:01:47-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Event Feed" @@ -11,8 +13,6 @@ draft = false weight = 40 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/event_feed.md) - Use the _Event Feed_ for actionable insights and operational visibility. The _Event Feed_ shows the time of the event, its type, the object acted upon, the action, and the initiating action. The Guitar Strings visualization helps you drill into infrastructure and compliance automation events and quickly isolate errors. diff --git a/components/docs-chef-io/content/automate/flags.md b/components/docs-chef-io/content/automate/flags.md index 3d8a24373b1..a50e63ca983 100644 --- a/components/docs-chef-io/content/automate/flags.md +++ b/components/docs-chef-io/content/automate/flags.md @@ -2,6 +2,8 @@ title = "Feature Flags" draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Feature Flags" @@ -10,8 +12,6 @@ draft = false weight = 50 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/flags.md) - Use the beta, lega, or feat flags to turn on or off beta, legacy, or in-development features. Select anywhere on the Chef Automate interface and enter "feat", "lega", or "beta" to open the feature flags window. diff --git a/components/docs-chef-io/content/automate/iam_actions.md b/components/docs-chef-io/content/automate/iam_actions.md index 235c59d6785..d54269f8da5 100644 --- a/components/docs-chef-io/content/automate/iam_actions.md +++ b/components/docs-chef-io/content/automate/iam_actions.md @@ -2,6 +2,8 @@ title = "IAM Actions" draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "IAM Actions" @@ -10,8 +12,6 @@ draft = false weight = 30 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/iam_actions.md) - Reference the chart on this page when creating a *Role* to know which action grants access to what page in the browser. *IAM Action* lists the associated action or actions required to access that page in the browser. diff --git a/components/docs-chef-io/content/automate/iam_v2_guide.md b/components/docs-chef-io/content/automate/iam_v2_guide.md index 855358478fa..7f55c1d3256 100644 --- a/components/docs-chef-io/content/automate/iam_v2_guide.md +++ b/components/docs-chef-io/content/automate/iam_v2_guide.md @@ -3,6 +3,8 @@ title = "IAM Users Guide" draft = false +gh_repo = "automate" + [menu] [menu.automate] title = "IAM Users Guide" @@ -11,8 +13,6 @@ draft = false weight = 20 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/iam_v2_guide.md) - {{< note >}} This documentation covers Chef Automate's IAM feature in release 20200326170928 and later. {{< /note >}} diff --git a/components/docs-chef-io/content/automate/iam_v2_overview.md b/components/docs-chef-io/content/automate/iam_v2_overview.md index 47ab267c480..8fae7030c9c 100644 --- a/components/docs-chef-io/content/automate/iam_v2_overview.md +++ b/components/docs-chef-io/content/automate/iam_v2_overview.md @@ -2,14 +2,14 @@ title = "IAM Overview" draft = false + +gh_repo = "automate" [menu] [menu.automate] parent = "automate/authorization" weight = 10 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/iam_v2_overview.md) - {{< note >}} This documentation covers Chef Automate's IAM feature in release 20200326170928 and later. {{< /note >}} diff --git a/components/docs-chef-io/content/automate/infra_server.md b/components/docs-chef-io/content/automate/infra_server.md index 8637c6b2e13..48cc02ece1f 100644 --- a/components/docs-chef-io/content/automate/infra_server.md +++ b/components/docs-chef-io/content/automate/infra_server.md @@ -4,6 +4,8 @@ title = "Install Chef Infra Server With Automate" date = 2020-02-11T14:24:00-08:00 weight = 20 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Install Chef Infra Server With Automate" @@ -12,8 +14,6 @@ draft = false weight = 60 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/infra_server.md) - {{% warning %}} Chef Automate will not deploy the Chef Infra Server add-ons Chef Manage and Push Jobs Server. diff --git a/components/docs-chef-io/content/automate/install.md b/components/docs-chef-io/content/automate/install.md index 72ba26374d6..6415df7f516 100644 --- a/components/docs-chef-io/content/automate/install.md +++ b/components/docs-chef-io/content/automate/install.md @@ -3,6 +3,8 @@ title = "Installation Guide" draft = false +gh_repo = "automate" + [menu] [menu.automate] title = "Install Guide" @@ -11,8 +13,6 @@ draft = false weight = 30 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/install.md) - Before beginning your installation, check the [System Requirements]({{< relref "system_requirements.md" >}}) for Chef Automate. See [Airgapped Installation]({{< relref "airgapped_installation.md" >}}) for installing Chef Automate to a host with no inbound or outbound internet traffic. diff --git a/components/docs-chef-io/content/automate/ldap.md b/components/docs-chef-io/content/automate/ldap.md index 33bc176a4f4..b6b7a947cbc 100644 --- a/components/docs-chef-io/content/automate/ldap.md +++ b/components/docs-chef-io/content/automate/ldap.md @@ -3,6 +3,8 @@ title = "LDAP" date = 2018-05-11T09:27:09+00:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "LDAP" @@ -11,8 +13,6 @@ draft = false weight = 30 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/ldap.md) - ## Authentication via Existing Identity Management Systems Chef Automate can integrate with existing LDAP services to authenticate users in Chef Automate, and thus use their existing group memberships to determine their Chef Automate permissions. diff --git a/components/docs-chef-io/content/automate/log_management.md b/components/docs-chef-io/content/automate/log_management.md index 76a9b65e809..37c2dbd94b1 100644 --- a/components/docs-chef-io/content/automate/log_management.md +++ b/components/docs-chef-io/content/automate/log_management.md @@ -3,6 +3,8 @@ title = "Log Management" draft = false +gh_repo = "automate" + [menu] [menu.automate] title = "Log Management" @@ -11,8 +13,6 @@ draft = false weight = 40 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/log_management.md) - Chef Automate 2.0 uses `systemd`. Log management is performed according to the configuration defined for the system service `journald`. ### Viewing Logs diff --git a/components/docs-chef-io/content/automate/migrate.md b/components/docs-chef-io/content/automate/migrate.md index bdea01e7454..961892e559b 100644 --- a/components/docs-chef-io/content/automate/migrate.md +++ b/components/docs-chef-io/content/automate/migrate.md @@ -2,6 +2,8 @@ title = "Migrate from Chef Automate 1" draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Migrate from Chef Automate 1" @@ -10,8 +12,6 @@ draft = false weight = 60 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/migrate.md) - Chef Automate versions 1.0.0-1.8.96 reached end-of-life on December 31, 2019 and are no longer supported. For more information and for help upgrading your system, please contact your Chef account representative. The current Chef Automate versions includes significant architectural and technical improvements to the core product platform. @@ -25,7 +25,7 @@ The Chef Automate migration process performs the following steps, in order: 1. Runs preflight checks to ensure the system is suitable for Chef Automate 2, your Chef Automate 1 installation can be migrated safely, and that the upgrade process will be able to migrate your data. 1. Analyzes your Chef Automate 1 configuration files and migrates the relevant settings to a configuration file for Chef Automate 2. If incompatibilities are detected, the migration process fails and emits a description of the problem. You will have an opportunity to make any necessary changes to the generated Chef Automate 2 configuration. -1. Downloads Chef Automate 2. Chef Automate 2 is distributed via [Habitat](https://www.habitat.sh/) packages that are installed early in the process to minimize the downtime required for the migration. +1. Downloads Chef Automate 2. Chef Automate 2 is distributed via [Habitat]({{< relref "/habitat/">}}) packages that are installed early in the process to minimize the downtime required for the migration. 1. Puts your Chef Automate 1 installation into maintenance mode, waits for queued data to be processed, and then backs up all Chef Automate 1 data. This ensures that data will not be lost in the migration process and that you will be able to recover to a working state should an unforeseen error occur. 1. Creates a local snapshot of Chef Automate 1 data for import into Chef Automate 2. 1. Shuts down Chef Automate 1. diff --git a/components/docs-chef-io/content/automate/monitoring.md b/components/docs-chef-io/content/automate/monitoring.md index aa10d8aa469..0f5bb2345d6 100644 --- a/components/docs-chef-io/content/automate/monitoring.md +++ b/components/docs-chef-io/content/automate/monitoring.md @@ -3,6 +3,8 @@ title = "Monitoring Chef Automate" date = 2019-10-28T14:44:28-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Monitoring Chef Automate" @@ -11,8 +13,6 @@ draft = false weight = 30 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/monitoring.md) - Use the authenticated https endpoint `/status` to monitor your Chef Automate installation. ## Checking the Status Endpoint diff --git a/components/docs-chef-io/content/automate/node_credentials.md b/components/docs-chef-io/content/automate/node_credentials.md index e8db22b1191..97f336ff5e5 100644 --- a/components/docs-chef-io/content/automate/node_credentials.md +++ b/components/docs-chef-io/content/automate/node_credentials.md @@ -4,6 +4,8 @@ title = "Node Credentials" date = 2018-05-22T17:23:24-07:00 weight = 20 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Node Credentials" @@ -12,8 +14,6 @@ draft = false weight = 50 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/node_credentials.md) - The Chef Automate Credentials page allows you to add, edit, and delete ``SSH``, ``WinRm``, and ``Sudo`` credentials for remotely access to your nodes. To manage your credentials, navigate to the _Node Credentials_ page from the **Settings** tab. diff --git a/components/docs-chef-io/content/automate/node_integrations.md b/components/docs-chef-io/content/automate/node_integrations.md index dfe60a2dfeb..9ad759e1c33 100644 --- a/components/docs-chef-io/content/automate/node_integrations.md +++ b/components/docs-chef-io/content/automate/node_integrations.md @@ -3,6 +3,8 @@ title = "Node Integrations" date = 2018-05-22T18:01:36-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Node Integrations" @@ -11,8 +13,6 @@ draft = false weight = 40 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/node_integrations.md) - Set up Chef Automate to detect and monitor the nodes in your AWS EC2 and Azure accounts by providing your credentials and creating a node manager. Chef Automate creates a node reference for each instance in your account. Associate your EC2 and Azure instances with ssh and WinRM credentials using tags--the values support wildcard matching--in your node manager. Run scan jobs with your node manager reference and you're suddenly running an `inspec exec` across your instances. Every two hours Chef Automate queries your AWS or Azure account to see the current state of all your nodes to determine if they are running, stopped, or terminated, and then updates Chef Automate accordingly. If the node manager finds an instance that used to be running and reachable but which no longer is (the node stopped, terminated, or is in a transition state), the node manager updates the status of that node in Chef Automate accordingly. Access the _Node Integrations_ page from the **Settings** tab. diff --git a/components/docs-chef-io/content/automate/nodes.md b/components/docs-chef-io/content/automate/nodes.md index 3e922ec36af..ccdee9a30a3 100644 --- a/components/docs-chef-io/content/automate/nodes.md +++ b/components/docs-chef-io/content/automate/nodes.md @@ -2,6 +2,8 @@ title = "Nodes API" draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Nodes" @@ -10,8 +12,6 @@ draft = false weight = 40 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/nodes.md) - ### Nodes The `/nodes` endpoint in Chef Automate is something of a 'logbook' of the nodes in your infrastructure. diff --git a/components/docs-chef-io/content/automate/notifications.md b/components/docs-chef-io/content/automate/notifications.md index 60660f4cab2..5cb318af288 100644 --- a/components/docs-chef-io/content/automate/notifications.md +++ b/components/docs-chef-io/content/automate/notifications.md @@ -3,6 +3,8 @@ title = "Notifications" date = 2018-05-18T13:19:02-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Notifications" @@ -11,8 +13,6 @@ draft = false weight = 10 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/notifications.md) - ## About Notifications Chef Automate notifications uses webhooks to send alerts for failures of Chef Infra Client runs and InSpec compliance scans. You can send notifications to Slack channels, Slack users, or any other service that supports webhook integrations. Notifications are sent for all failures. To ignore a failure, set the `ignore_failure` attribute to `true` on the resource. diff --git a/components/docs-chef-io/content/automate/on_prem_builder.md b/components/docs-chef-io/content/automate/on_prem_builder.md index ec635f69913..3f51b3dfb28 100644 --- a/components/docs-chef-io/content/automate/on_prem_builder.md +++ b/components/docs-chef-io/content/automate/on_prem_builder.md @@ -5,6 +5,8 @@ date = 2019-11-19T14:10:15-08:00 draft = false +gh_repo = "automate" + [menu] [menu.automate] title = "Install Chef Habitat Builder On-prem" @@ -13,8 +15,6 @@ draft = false weight = 50 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/on_prem_builder.md) - This guide details how to install Chef Automate and deploy Chef Habitat Builder on-prem together. Enterprise customers may wish to set up an on-premises Chef Habitat Builder depot to store Chef Habitat packages for use by their own Chef Habitat Studios and Supervisors. This guide covers setting up Chef Automate and Chef Habitat Builder on-prem, and bootstrapping Chef Habitat Builder on-prem with curated core seed lists from the Chef Habitat public Builder. @@ -244,7 +244,7 @@ Once you are signed in to the Chef Habitat Builder UI, select the **New Origin** ## Access Chef Habitat Builder On-prem With Chef Habitat Command-Line Tools Use the `https://{{< example_fqdn "automate" >}}/bldr/v1` URL when accessing your Chef Habitat Builder installation with the Chef Habitat command-line tools. -The Chef Habitat command-line tools recognize the [`HAB_BLDR_URL` environment variable](https://www.habitat.sh/docs/reference/), which you can set on the command line with: +The Chef Habitat command-line tools recognize the [`HAB_BLDR_URL` environment variable]({{< relref "/habitat/environment_variables" >}}), which you can set on the command line with: ```bash export HAB_BLDR_URL=https://{{< example_fqdn "automate" >}}/bldr/v1/ @@ -252,7 +252,7 @@ export HAB_BLDR_URL=https://{{< example_fqdn "automate" >}}/bldr/v1/ ## Access the Chef Habitat Builder On-prem REST API -To access the [REST API](https://www.habitat.sh/docs/api/builder-api/) for your on-prem installation of Chef Habitat Builder, you must specify your Builder authentication token as a bearer token in your request's +To access the [REST API]({{< relref "/habitat/builder_api" >}}) for your on-prem installation of Chef Habitat Builder, you must specify your Builder authentication token as a bearer token in your request's `Authorization` header. For example: @@ -358,8 +358,8 @@ To finish up, return to your Chef Habitat Builder on-prem installation and view ## Using Chef Habitat Builder -Because you are using an on-prem installation of Chef Habitat Builder, you must specify the [Builder API endpoint of your installation]({{< ref "on_prem_builder.md#access-chef-habitat-builder-on-prem-with-habitat-command-line-tools" >}}) when following the [Habitat Builder documentation](https://www.habitat.sh/docs/using-builder/). -This documentation covers [using origin keys](https://www.habitat.sh/docs/using-builder/#using-origin-secrets), [using origin secrets](https://www.habitat.sh/docs/using-builder/#using-origin-secrets), and [uploading and promoting packages](https://www.habitat.sh/docs/using-builder/#upload-and-promote-packages). +Because you are using an on-prem installation of Chef Habitat Builder, you must specify the [Builder API endpoint of your installation]({{< ref "on_prem_builder.md#access-chef-habitat-builder-on-prem-with-habitat-command-line-tools" >}}) when following the [Habitat Builder documentation]({{< relref "/habitat/builder_overview" >}}). +This documentation covers [using origin keys]({{< relref "/habitat/builder_origins#origin-keys" >}}), [using origin secrets]({{< relref "/habitat/builder_origins#origin-secrets" >}}), and [uploading and promoting packages]({{< relref "/habitat/builder_origin_packages" >}}). ## Operating Chef Habitat Builder diff --git a/components/docs-chef-io/content/automate/policies.md b/components/docs-chef-io/content/automate/policies.md index 65a9de31647..553621ac749 100644 --- a/components/docs-chef-io/content/automate/policies.md +++ b/components/docs-chef-io/content/automate/policies.md @@ -2,6 +2,8 @@ title = "Policies" draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Policies" @@ -10,8 +12,6 @@ draft = false weight = 90 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/policies.md) - ## Overview Identity and Access Management policies manage the resources and actions used by identities. diff --git a/components/docs-chef-io/content/automate/profiles.md b/components/docs-chef-io/content/automate/profiles.md index 62238161a1d..a65ba2c9292 100644 --- a/components/docs-chef-io/content/automate/profiles.md +++ b/components/docs-chef-io/content/automate/profiles.md @@ -3,6 +3,8 @@ title = "Profiles" date = 2018-03-26T16:02:53-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Profiles" @@ -11,8 +13,6 @@ draft = false weight = 30 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/profiles.md) - ## Overview Compliance profiles help you secure your infrastructure continuously. diff --git a/components/docs-chef-io/content/automate/projects.md b/components/docs-chef-io/content/automate/projects.md index b5aaa942412..2a5be559c08 100644 --- a/components/docs-chef-io/content/automate/projects.md +++ b/components/docs-chef-io/content/automate/projects.md @@ -2,6 +2,8 @@ title = "Projects" draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Projects" @@ -10,8 +12,6 @@ draft = false weight = 110 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/projects.md) - ## Overview Identity and Access Management projects allow for filtering and segregation of your data among your user base. diff --git a/components/docs-chef-io/content/automate/reports.md b/components/docs-chef-io/content/automate/reports.md index e5236f30b60..e6f1af3a042 100644 --- a/components/docs-chef-io/content/automate/reports.md +++ b/components/docs-chef-io/content/automate/reports.md @@ -3,6 +3,8 @@ title = "Reports" date = 2018-03-26T16:02:09-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Reports" @@ -11,8 +13,6 @@ draft = false weight = 10 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/reports.md) - The _Reports_ page (Compliance > Reports) provides comprehensive insight into the compliance status of all scanned infrastructure. Scan results for audit cookbook configurations also appear in this view. diff --git a/components/docs-chef-io/content/automate/restore.md b/components/docs-chef-io/content/automate/restore.md index 29183b6c904..0920dc8699e 100644 --- a/components/docs-chef-io/content/automate/restore.md +++ b/components/docs-chef-io/content/automate/restore.md @@ -3,6 +3,8 @@ title = "Restore" date = 2018-03-26T15:27:52-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Restore" @@ -11,8 +13,6 @@ draft = false weight = 80 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/restore.md) - Restore Chef Automate from a [filesystem backup]({{< ref "restore.md#restore-from-a-filesystem-backup" >}}), an [Amazon S3 bucket backup]({{< ref "restore.md#restore-from-an-aws-s3-backup" >}}), or a [Google Cloud Storage (GCS) bucket backup]({{< ref "restore.md#restore-from-a-google-cloud-storage-backup" >}}). Before restoring a Chef Automate installation, see how to [configure your backups]({{< ref "backup.md" >}}). diff --git a/components/docs-chef-io/content/automate/roles.md b/components/docs-chef-io/content/automate/roles.md index 7870d36cb41..d34b53a804e 100644 --- a/components/docs-chef-io/content/automate/roles.md +++ b/components/docs-chef-io/content/automate/roles.md @@ -2,6 +2,8 @@ title = "Roles" draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Roles" @@ -10,8 +12,6 @@ draft = false weight = 100 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/roles.md) - ## Overview Chef Automate Identity and Access Management roles are named groups of actions used to define [policies]({{< relref "policies.md" >}}). Actions describe what is allowed by users in Automate. [IAM Actions]({{< relref "iam_actions.md" >}}) describes the associated action or actions required to access certain pages in the browser. diff --git a/components/docs-chef-io/content/automate/saml.md b/components/docs-chef-io/content/automate/saml.md index 84225e4a437..ffd91faaab2 100644 --- a/components/docs-chef-io/content/automate/saml.md +++ b/components/docs-chef-io/content/automate/saml.md @@ -3,6 +3,8 @@ title = "SAML" date = 2018-05-11T09:27:09+00:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "SAML" @@ -11,8 +13,6 @@ draft = false weight = 50 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/saml.md) - ## Authentication via Existing Identity Management Systems Chef Automate can integrate with existing SAML services to authenticate users in Chef Automate, and thus use their existing group memberships to determine their Chef Automate permissions. diff --git a/components/docs-chef-io/content/automate/scan_jobs.md b/components/docs-chef-io/content/automate/scan_jobs.md index d7366a2da62..19663b428ed 100644 --- a/components/docs-chef-io/content/automate/scan_jobs.md +++ b/components/docs-chef-io/content/automate/scan_jobs.md @@ -3,6 +3,8 @@ title = "Scan Jobs" date = 2018-03-26T16:02:35-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Scan Jobs" @@ -11,8 +13,6 @@ draft = false weight = 20 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/scan_jobs.md) - ## Overview A scan job is the equivalent of running `inspec exec` against a given set of targets. The results of a scan job are sent to compliance reporting. Any profiles installed to the user's namespace may be used in a scan job. diff --git a/components/docs-chef-io/content/automate/servicenow_integration_install.md b/components/docs-chef-io/content/automate/servicenow_integration_install.md index fab30e6615d..f44cdbaefe1 100644 --- a/components/docs-chef-io/content/automate/servicenow_integration_install.md +++ b/components/docs-chef-io/content/automate/servicenow_integration_install.md @@ -3,6 +3,8 @@ title = "ServiceNow Integration" draft = false +gh_repo = "automate" + [menu] [menu.automate] title = "ServiceNow Integration" @@ -11,8 +13,6 @@ draft = false weight = 40 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/servicenow_integration_install.md) - This guide helps you set up a ServiceNow instance that creates incidents from Chef Automate failure notifications on failed Chef Infra Client runs and Compliance scans. ## Chef Automate ServiceNow Integration diff --git a/components/docs-chef-io/content/automate/system_requirements.md b/components/docs-chef-io/content/automate/system_requirements.md index 5501d1e6af9..8f0e9777a88 100644 --- a/components/docs-chef-io/content/automate/system_requirements.md +++ b/components/docs-chef-io/content/automate/system_requirements.md @@ -4,6 +4,8 @@ title = "System Requirements" weight = 20 draft = false +gh_repo = "automate" + [menu] [menu.automate] title = "System Requirements" @@ -12,8 +14,6 @@ draft = false weight = 20 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/system_requirements.md) - ## Hardware Chef Automate requires a minimum of diff --git a/components/docs-chef-io/content/automate/teams.md b/components/docs-chef-io/content/automate/teams.md index 6cffee821e3..ed9dae99176 100644 --- a/components/docs-chef-io/content/automate/teams.md +++ b/components/docs-chef-io/content/automate/teams.md @@ -3,6 +3,8 @@ title = "Teams" date = 2018-05-16T16:03:13-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Teams" @@ -11,8 +13,6 @@ draft = false weight = 70 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/teams.md) - ## Overview A Chef Automate team is an assigned grouping of users. You can import existing teams into Chef Automate with [Microsoft AD (LDAP)]({{< ref "ldap.md#microsoft-active-directory" >}}), [generic LDAP]({{< ref "ldap.md" >}}), or [SAML]({{< ref "saml.md" >}}). You can also create local Chef Automate teams that are independent of LDAP or SAML. diff --git a/components/docs-chef-io/content/automate/telemetry.md b/components/docs-chef-io/content/automate/telemetry.md index a820388175b..e677cbc8b39 100644 --- a/components/docs-chef-io/content/automate/telemetry.md +++ b/components/docs-chef-io/content/automate/telemetry.md @@ -2,6 +2,8 @@ title = "Telemetry" draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Telemetry" @@ -10,8 +12,6 @@ draft = false weight = 50 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/telemetry.md) - ### About Telemetry Users of this Chef Automate server may elect to share anonymized usage data with diff --git a/components/docs-chef-io/content/automate/troubleshooting.md b/components/docs-chef-io/content/automate/troubleshooting.md index 225a340ad35..814fdf3acd1 100644 --- a/components/docs-chef-io/content/automate/troubleshooting.md +++ b/components/docs-chef-io/content/automate/troubleshooting.md @@ -3,6 +3,8 @@ title = "Troubleshooting" date = 2018-05-15T17:27:57-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Troubleshooting" @@ -11,8 +13,6 @@ draft = false weight = 100 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/troubleshooting.md) - ## chef-automate CLI Errors ### Error: Unable to make a request to the deployment-service diff --git a/components/docs-chef-io/content/automate/users.md b/components/docs-chef-io/content/automate/users.md index 57e9665b324..0875d38f1d5 100644 --- a/components/docs-chef-io/content/automate/users.md +++ b/components/docs-chef-io/content/automate/users.md @@ -3,6 +3,8 @@ title = "Users" date = 2018-05-16T16:03:13-07:00 draft = false + +gh_repo = "automate" [menu] [menu.automate] title = "Users" @@ -11,8 +13,6 @@ draft = false weight = 60 +++ -[\[edit on GitHub\]](https://github.com/chef/automate/blob/master/components/docs-chef-io/content/automate/users.md) - ## Overview Chef Automate supports three different types of users: local users, [LDAP users]({{< relref "ldap.md" >}}), and [SAML users]({{< relref "saml.md" >}}). Manage local users from the **Settings** tab. From 1371acefcff2284c537e3bd3af9772534e945c87 Mon Sep 17 00:00:00 2001 From: Dan DeLeo Date: Tue, 9 Feb 2021 14:30:49 -0800 Subject: [PATCH 15/34] Notifications Rewrite: Service Stub (#4712) We are rewriting the notifications service in go to align better with our engineering capabilities. This change creates a `notifications-service2` component in the source tree. It can be compiled and packaged manually, but is hidden from pipeline builds using the `dev_only` option in the habitat `plan.sh` (the `automate-ui-devproxy` uses the same mechanism). The `notifications-service2` is missing most of the functionality that it will eventually have/need. Currently it only implements configuration file loading. When run as a service it prints its config to the logs in a loop. This is a first step towards implementing the infrastructural components of the new notifications service. * Habitat boilerplate for notifications-service2 * Add config to notifications2 * Cleanup --- components/notifications-service2/.gitignore | 1 + .../notifications-service/commands/root.go | 24 ++++ .../notifications-service/commands/serve.go | 45 +++++++ .../notifications-service.go | 7 ++ .../habitat/config/config.toml | 26 ++++ .../habitat/config/init_proxy | 9 ++ .../habitat/default.toml | 13 ++ .../notifications-service2/habitat/hooks/init | 11 ++ .../notifications-service2/habitat/hooks/run | 15 +++ .../notifications-service2/habitat/plan.sh | 59 +++++++++ .../notifications-service2/package.meta | 4 + .../pkg/config/service.go | 119 ++++++++++++++++++ .../pkg/config/service_test.go | 102 +++++++++++++++ .../sql/01_one_dot_zero_migrations.up.sql | 65 ++++++++++ 14 files changed, 500 insertions(+) create mode 100644 components/notifications-service2/.gitignore create mode 100644 components/notifications-service2/cmd/notifications-service/commands/root.go create mode 100644 components/notifications-service2/cmd/notifications-service/commands/serve.go create mode 100644 components/notifications-service2/cmd/notifications-service/notifications-service.go create mode 100644 components/notifications-service2/habitat/config/config.toml create mode 100644 components/notifications-service2/habitat/config/init_proxy create mode 100644 components/notifications-service2/habitat/default.toml create mode 100644 components/notifications-service2/habitat/hooks/init create mode 100644 components/notifications-service2/habitat/hooks/run create mode 100644 components/notifications-service2/habitat/plan.sh create mode 100644 components/notifications-service2/package.meta create mode 100644 components/notifications-service2/pkg/config/service.go create mode 100644 components/notifications-service2/pkg/config/service_test.go create mode 100644 components/notifications-service2/pkg/storage/postgres/schema/sql/01_one_dot_zero_migrations.up.sql diff --git a/components/notifications-service2/.gitignore b/components/notifications-service2/.gitignore new file mode 100644 index 00000000000..b0b0eed889e --- /dev/null +++ b/components/notifications-service2/.gitignore @@ -0,0 +1 @@ +cmd/notifications-service/notifications-service diff --git a/components/notifications-service2/cmd/notifications-service/commands/root.go b/components/notifications-service2/cmd/notifications-service/commands/root.go new file mode 100644 index 00000000000..0b8a80e7171 --- /dev/null +++ b/components/notifications-service2/cmd/notifications-service/commands/root.go @@ -0,0 +1,24 @@ +package commands + +import ( + "os" + + log "github.com/sirupsen/logrus" + "github.com/spf13/cobra" +) + +func RootCmd() *cobra.Command { + r := &cobra.Command{ + Use: "applications-service", + Short: "Chef Automate Applications Service", + } + r.AddCommand(newServeCommand()) + return r +} + +func Execute() { + if err := RootCmd().Execute(); err != nil { + log.Error(err) + os.Exit(-1) + } +} diff --git a/components/notifications-service2/cmd/notifications-service/commands/serve.go b/components/notifications-service2/cmd/notifications-service/commands/serve.go new file mode 100644 index 00000000000..b6fe7a9f184 --- /dev/null +++ b/components/notifications-service2/cmd/notifications-service/commands/serve.go @@ -0,0 +1,45 @@ +package commands + +import ( + "fmt" + "time" + + "github.com/chef/automate/components/automate-deployment/pkg/toml" + "github.com/chef/automate/components/notifications-service2/pkg/config" + "github.com/spf13/cobra" +) + +type serveCmdFlagSet struct { + configFile string +} + +var serveCmdFlags serveCmdFlagSet + +func newServeCommand() *cobra.Command { + c := &cobra.Command{ + Use: "serve", + Short: "Run notifications-service server", + RunE: runServeCommand, + } + c.PersistentFlags().StringVar( + &serveCmdFlags.configFile, + "config", + "", + "path to config file", + ) + return c +} + +func runServeCommand(cmd *cobra.Command, args []string) error { + c, err := config.FromFile(serveCmdFlags.configFile) + if err != nil { + return err + } + for { + fmt.Println("hello from notifications-service2") + s, _ := toml.Marshal(c) + fmt.Println(string(s)) + time.Sleep(5 * time.Second) + } + return nil +} diff --git a/components/notifications-service2/cmd/notifications-service/notifications-service.go b/components/notifications-service2/cmd/notifications-service/notifications-service.go new file mode 100644 index 00000000000..c404db0ffa0 --- /dev/null +++ b/components/notifications-service2/cmd/notifications-service/notifications-service.go @@ -0,0 +1,7 @@ +package main + +import "github.com/chef/automate/components/notifications-service2/cmd/notifications-service/commands" + +func main() { + commands.Execute() +} diff --git a/components/notifications-service2/habitat/config/config.toml b/components/notifications-service2/habitat/config/config.toml new file mode 100644 index 00000000000..17784f8fe84 --- /dev/null +++ b/components/notifications-service2/habitat/config/config.toml @@ -0,0 +1,26 @@ +[service] +host = "127.0.0.1" +port = {{cfg.service.port}} +external_fqdn = "{{cfg.service.external_fqdn}}" +log_level = "{{cfg.log.level}}" + +[postgres] +database = "{{cfg.storage.database}}" +schema_path = "{{pkg.path}}/schema" +max_open_conns = {{cfg.storage.max_open_conns}} +max_idle_conns = {{cfg.storage.max_idle_conns}} + +[secrets] +{{~#eachAlive bind.secrets-service.members as |secrets|}} + {{~#if @last}} +host = "{{secrets.cfg.host}}" +port = "{{secrets.cfg.port}}" + {{~/if}} +{{~/eachAlive}} + + +[tls] +cert_path = "{{pkg.svc_config_path}}/service.crt" +key_path = "{{pkg.svc_config_path}}/service.key" +root_ca_path ="{{pkg.svc_config_path}}/root_ca.crt" + diff --git a/components/notifications-service2/habitat/config/init_proxy b/components/notifications-service2/habitat/config/init_proxy new file mode 100644 index 00000000000..1e9f7fcfc32 --- /dev/null +++ b/components/notifications-service2/habitat/config/init_proxy @@ -0,0 +1,9 @@ +#!{{pkgPathFor "core/bash"}}/bin/bash + +exec 2>&1 + +{{ #if cfg.proxy.connection_string ~}} +export https_proxy="{{cfg.proxy.connection_string}}" +export http_proxy="{{cfg.proxy.connection_string}}" +export no_proxy="{{cfg.proxy.no_proxy_string}}" +{{ /if ~ }} diff --git a/components/notifications-service2/habitat/default.toml b/components/notifications-service2/habitat/default.toml new file mode 100644 index 00000000000..7051bc7e6b8 --- /dev/null +++ b/components/notifications-service2/habitat/default.toml @@ -0,0 +1,13 @@ +[mlsa] +accept = false + +[service] +external_fqdn="http://localhost" +host = "localhost" +port = 10125 + +[storage] +database = "notifications_service" +max_open_conns = 10 +max_idle_conns = 10 + diff --git a/components/notifications-service2/habitat/hooks/init b/components/notifications-service2/habitat/hooks/init new file mode 100644 index 00000000000..9c65861e6ef --- /dev/null +++ b/components/notifications-service2/habitat/hooks/init @@ -0,0 +1,11 @@ +# *** WARNING *** +# Please put potentially long-running and/or complex operations in the run hook rather +# than the init hook until the issue described in +# +# https://github.com/habitat-sh/habitat/issues/1973 +# +# has been resolved. +# Currently, the Habitat `init` and `health_check` hooks run directly from the main loop +# of the Habitat supervisor. If these hooks hang or take too long to run, they can block +# execution of the supervisor. +# diff --git a/components/notifications-service2/habitat/hooks/run b/components/notifications-service2/habitat/hooks/run new file mode 100644 index 00000000000..d60e7fefcb7 --- /dev/null +++ b/components/notifications-service2/habitat/hooks/run @@ -0,0 +1,15 @@ +#!{{pkgPathFor "core/bash"}}/bin/bash + +set -e + +exec 2>&1 + +# Call the script to block until user accepts the MLSA via the package's config +{{pkgPathFor "chef/mlsa"}}/bin/accept {{cfg.mlsa.accept}} + +pg-helper ensure-service-database "notifications_service" +pg-helper create-extension "notifications_service" "pgcrypto" + +source {{pkg.svc_config_path}}/init_proxy + +exec "notifications-service" "serve" "--config" "{{pkg.svc_config_path}}/config.toml" diff --git a/components/notifications-service2/habitat/plan.sh b/components/notifications-service2/habitat/plan.sh new file mode 100644 index 00000000000..f49e4ad1e27 --- /dev/null +++ b/components/notifications-service2/habitat/plan.sh @@ -0,0 +1,59 @@ +# NOTE/TODO: remove this when we cut over the packages +chef_automate_dev_only_pkg=true + +pkg_name=notifications-service +pkg_description="Chef Automate Notifications Service" +pkg_origin=chef +pkg_version="2.0.0" +pkg_maintainer="Chef Software Inc. " +pkg_license=('Chef-MLSA') +pkg_upstream_url="http://github.com/chef/automate" + + +pkg_deps=( + chef/mlsa + ${local_platform_tools_origin:-chef}/automate-platform-tools +) + +pkg_exports=( + [port]=service.port +) + +pkg_exposes=(port) + +pkg_binds=( + [automate-pg-gateway]="port" + [pg-sidecar-service]="port" + [secrets-service]="port" +) +pkg_bin_dirs=(bin) +pkg_lib_dirs=(lib) + +pkg_scaffolding="${local_scaffolding_origin:-chef}/automate-scaffolding-go" +scaffolding_go_base_path=github.com/chef +scaffolding_go_repo_name=automate + +# NOTE/TODO: This references the temporary name/path components/notifications-service2 +# when we cut over, this needs to be changed to the commented version below +scaffolding_go_import_path="${scaffolding_go_base_path}/${scaffolding_go_repo_name}/components/notifications-service2" +scaffolding_go_binary_list=( + "${scaffolding_go_import_path}/cmd/${pkg_name}" +) + +## scaffolding_go_import_path="${scaffolding_go_base_path}/${scaffolding_go_repo_name}/components/${pkg_name}" +## scaffolding_go_binary_list=( +## "${scaffolding_go_import_path}/cmd/${pkg_name}" +## ) + +do_install() { + do_default_install + + build_line "Copying schema sql files" + mkdir "${pkg_prefix}/schema" + cp -r pkg/storage/postgres/schema/sql/* "${pkg_prefix}/schema" +} + +do_strip() { + return 0 +} + diff --git a/components/notifications-service2/package.meta b/components/notifications-service2/package.meta new file mode 100644 index 00000000000..d6b43bb86e8 --- /dev/null +++ b/components/notifications-service2/package.meta @@ -0,0 +1,4 @@ +{ + "name": "chef/notifications-service", + "uses_platform_scaffolding": true +} diff --git a/components/notifications-service2/pkg/config/service.go b/components/notifications-service2/pkg/config/service.go new file mode 100644 index 00000000000..4c0f26c5517 --- /dev/null +++ b/components/notifications-service2/pkg/config/service.go @@ -0,0 +1,119 @@ +package config + +import ( + platform_config "github.com/chef/automate/lib/platform/config" + "github.com/chef/automate/lib/tls/certs" + + "github.com/pkg/errors" + log "github.com/sirupsen/logrus" + "github.com/spf13/viper" +) + +const DefaultLogLevel = "info" + +type Notifications struct { + Service *Service `mapstructure:"service" toml:"service"` + Postgres *Postgres `mapstructure:"postgres" toml:"postgres"` + Secrets *Secrets `mapstructure:"secrets" toml:"secrets"` + TLSConfig *certs.TLSConfig `mapstructure:"tls" toml:"tls"` + Certs *certs.ServiceCerts `mapstructure:"-" toml:"-"` +} + +type Service struct { + ExternalFQDN string `mapstructure:"external_fqdn" toml:"external_fqdn"` + Host string `mapstructure:"host" toml:"host"` + Port int `mapstructure:"port" toml:"port"` + LogLevel string `mapstructure:"log_level" toml:"log_level"` +} + +type Postgres struct { + URI string `mapstructure:"uri" toml:"uri"` + Database string `mapstructure:"database" toml:"database"` + SchemaPath string `mapstructure:"schema_path" toml:"schema_path"` + MaxOpenConns int `mapstructure:"max_open_conns" toml:"max_open_conns"` + MaxIdleConns int `mapstructure:"max_idle_conns" toml:"max_idle_conns"` +} + +type Secrets struct { + Host string `mapstructure:"host" toml:"host"` + Port int `mapstructure:"port" toml:"port"` +} + +// FromFile loads the config from the given path, load referenced files (e.g., +// certs), sets derived config and populates global state (e.g., log level, +// etc.) +func FromFile(path string) (*Notifications, error) { + n, err := MarshalFromFile(path) + if err != nil { + return nil, err + } + if err := n.FixupPGURI(); err != nil { + return nil, err + } + if err := n.SetLogLevel(); err != nil { + return nil, err + } + if err := n.ReadCerts(); err != nil { + return nil, err + } + + return n, nil +} + +func MarshalFromFile(path string) (*Notifications, error) { + viper.SetConfigFile(path) + + err := viper.ReadInConfig() + if err != nil { + return nil, errors.Wrapf(err, "failed to read config file at path %q", path) + } + + log.WithFields(log.Fields{"file": viper.ConfigFileUsed()}).Info("Using config file") + + n := &Notifications{} + if err := viper.Unmarshal(n); err != nil { + return nil, errors.Wrapf(err, "could not parse config file at path %q", path) + } + + return n, nil +} + +func (n *Notifications) FixupPGURI() error { + if n.Postgres.URI != "" { + return nil + } + pgURI, err := platform_config.PGURIFromEnvironment(n.Postgres.Database) + if err != nil { + return errors.Wrapf(err, "PGURIFromEnvironment failed for database %q", n.Postgres.Database) + } + n.Postgres.URI = pgURI + return nil +} + +func (n *Notifications) SetLogLevel() error { + return n.Service.SetLogLevel() +} + +func (n *Notifications) ReadCerts() error { + certs, err := n.TLSConfig.ReadCerts() + if err != nil { + return err + } + n.Certs = certs + return nil +} + +func (s *Service) SetLogLevel() error { + desiredLevelStr := s.LogLevel + if desiredLevelStr == "" { + desiredLevelStr = DefaultLogLevel + } + + desiredLevel, err := log.ParseLevel(desiredLevelStr) + if err != nil { + return errors.Wrapf(err, "failed to parse log level string %q", desiredLevel) + } + + log.SetLevel(desiredLevel) + return nil +} diff --git a/components/notifications-service2/pkg/config/service_test.go b/components/notifications-service2/pkg/config/service_test.go new file mode 100644 index 00000000000..fe29cb4675c --- /dev/null +++ b/components/notifications-service2/pkg/config/service_test.go @@ -0,0 +1,102 @@ +package config + +import ( + "io/ioutil" + "os" + "testing" + + log "github.com/sirupsen/logrus" + + "github.com/chef/automate/components/automate-deployment/pkg/toml" + "github.com/chef/automate/lib/tls/certs" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestConfigMarshaling(t *testing.T) { + original := &Notifications{ + Service: &Service{ + ExternalFQDN: "automate-fe.example", + Host: "localhost", + Port: 1234, + LogLevel: "debug", + }, + Postgres: &Postgres{ + URI: "postgresql://notifications@127.0.0.1:10145/notifications_service?opts=vals", + Database: "notifications_service", + SchemaPath: "/hab/pkgs/example/notifications-service/2.0.0/20210204232203/schema", + MaxOpenConns: 15, + MaxIdleConns: 17, + }, + Secrets: &Secrets{ + Host: "secrets.example", + Port: 4567, + }, + TLSConfig: &certs.TLSConfig{ + CertPath: "/hab/svc/notifications-service/config/service.crt", + KeyPath: "/hab/svc/notifications-service/config/service.key", + RootCACertPath: "/hab/svc/notifications-service/config/root_ca.crt", + }, + } + configBytes, err := toml.Marshal(original) + require.NoError(t, err) + + f, err := ioutil.TempFile("", "notifications_service_config_test*.toml") + require.NoError(t, err) + defer os.Remove(f.Name()) + _, err = f.Write(configBytes) + require.NoError(t, err) + err = f.Close() + require.NoError(t, err) + + unmarshaled, err := MarshalFromFile(f.Name()) + require.NoError(t, err) + assert.Equal(t, original, unmarshaled) +} + +func TestConfigLogLevel(t *testing.T) { + levelBeforeTest := log.GetLevel() + defer log.SetLevel(levelBeforeTest) + + validLogLevels := []string{ + "trace", + "debug", + "info", + "error", + "warning", + "fatal", + "panic", + } + for _, levelToSet := range validLogLevels { + n := &Notifications{ + Service: &Service{ + LogLevel: levelToSet, + }, + } + err := n.SetLogLevel() + require.NoError(t, err) + assert.Equal(t, levelToSet, log.GetLevel().String()) + } + + nInvalid := &Notifications{ + Service: &Service{ + LogLevel: "bork", + }, + } + + err := nInvalid.SetLogLevel() + require.Error(t, err) +} + +func TestConfigReadCerts(t *testing.T) { + nValid := &Notifications{ + TLSConfig: &certs.TLSConfig{ + CertPath: "/src/dev/certs/notifications-service.crt", + KeyPath: "/src/dev/certs/notifications-service.key", + RootCACertPath: "/src/dev/certs/Chef_Automate_FAKE_Dev.crt", + }, + } + err := nValid.ReadCerts() + require.NoError(t, err) + +} diff --git a/components/notifications-service2/pkg/storage/postgres/schema/sql/01_one_dot_zero_migrations.up.sql b/components/notifications-service2/pkg/storage/postgres/schema/sql/01_one_dot_zero_migrations.up.sql new file mode 100644 index 00000000000..bd152d4fa0a --- /dev/null +++ b/components/notifications-service2/pkg/storage/postgres/schema/sql/01_one_dot_zero_migrations.up.sql @@ -0,0 +1,65 @@ +-- ONE DOT ZERO MIGRATIONS: +-- The migrations in this file are imported from the previous elixir +-- implementation of the service. +-- SEE: https://github.com/chef/automate/blob/a053722bb4f974f28d4e7159841d34e4da27a5de/components/notifications-service/server/lib/data/migrations.ex + +---- CREATE TABLE IF NOT EXISTS migrations (num INTEGER NOT NULL, descr TEXT, at TIMESTAMPTZ NOT NULL); +---- +---- CREATE TYPE IF NOT EXISTS rule_event AS ENUM ('CCRSuccess', +---- 'CCRFailure', +---- 'ComplianceSuccess', +---- 'ComplianceFailure'); +---- +---- CREATE TYPE IF NOT EXISTS rule_action AS ENUM ('SlackAlert', 'WebhookAlert'); +---- +---- CREATE TABLE IF NOT EXISTS rules ( +---- id uuid PRIMARY KEY, +---- name TEXT UNIQUE NOT NULL, +---- event rule_event NOT NULL, +---- action rule_action NOT NULL, +---- url TEXT NOT NULL ); +---- +---- CREATE UNLOGGED TABLE IF NOT EXISTS processed_events ( +---- inbound_id VARCHAR(64), +---- event rule_event, +---- at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, +---- PRIMARY KEY (inbound_id, event) +---- ); +---- +---- CREATE OR REPLACE FUNCTION log_and_clean_event( +---- id varchar(64), +---- event_type rule_event, +---- delete_older_than SMALLINT -- purge records older than this # of seconds +---- ) +---- RETURNS BOOLEAN -- True if the event exists +---- LANGUAGE plpgsql +---- AS $$ +---- DECLARE +---- already_processed BOOLEAN; +---- BEGIN +---- already_processed = false; +---- -- First clean up old events: +---- DELETE FROM processed_events +---- WHERE at < (CURRENT_TIMESTAMP - (delete_older_than * interval '1 second')); +---- -- Now try to insert - failure due to duplicate insert means we already +---- -- processed the event. +---- BEGIN +---- INSERT INTO processed_events(inbound_id, event, at) +---- VALUES (id, event_type, CURRENT_TIMESTAMP); +---- EXCEPTION WHEN unique_violation THEN +---- already_processed = true; +---- END; +---- RETURN already_processed; +---- END; +---- $$; +---- +---- ALTER TYPE rule_action ADD VALUE 'ServiceNowAlert' AFTER 'WebhookAlert'; +---- ALTER TABLE rules ADD COLUMN secret_id VARCHAR; +---- +---- ALTER TYPE rule_event ADD VALUE 'Assets'; +---- +---- ALTER TABLE rules ADD COLUMN critical_controls_only BOOLEAN; +---- ALTER TABLE rules ALTER COLUMN critical_controls_only SET DEFAULT FALSE; +---- +---- UPDATE rules SET critical_controls_only=FALSE; +---- DELETE from rules where event = 'Assets' From 09121a6d83c8f1bf871d50839b62362bae3c54ef Mon Sep 17 00:00:00 2001 From: Vivek Singh Date: Wed, 10 Feb 2021 20:01:02 +0530 Subject: [PATCH 16/34] [infra-proxy-service] Add integration testing for infra-proxy-service (#4690) * intergration test of infra-proxy-service Signed-off-by: Vivek Singh * more changes Signed-off-by: Vivek Singh * Sample integration test using http calls to api gateway Signed-off-by: Kallol Roy * intergration test of infra-proxy-service Signed-off-by: Vivek Singh * Required global setup Signed-off-by: Vivek Singh * GetServers test running Signed-off-by: Vivek Singh * spin up local chef server dev Signed-off-by: Vivek Singh * Changes to create auth_token while sending GRPC requests Signed-off-by: Kallol Roy * Added local deployed chef server and its setup Signed-off-by: Vivek Singh * fixes end of line issues Signed-off-by: Vivek Singh * remove automate gateway integration test cases Signed-off-by: Vivek Singh * run server unit test cases only Signed-off-by: Vivek Singh * add integration test to ci Signed-off-by: Vivek Singh * try with chef-automate dev deployinate Signed-off-by: Vivek Singh * set CONTAINER_HOSTNAME env var Signed-off-by: Vivek Singh * Trying to fix integration failure Signed-off-by: Kallol Roy Co-authored-by: Kallol Roy --- .expeditor/verify_private.pipeline.yml | 17 +++ .studio/infra-proxy-service | 24 +++- components/infra-proxy-service/Makefile | 2 +- .../cmd/infra-proxy-service/commands/serve.go | 16 +-- .../infra-proxy-service/config/service.go | 124 ++++++++++++++++++ components/infra-proxy-service/dev/config.yml | 10 +- .../integration_test/clients_test.go | 36 +++++ .../integration_test/global_test.go | 33 +++++ .../integration_test/suite_test.go | 52 ++++++++ .../infra-proxy-service/server/clients.go | 1 + .../storage/postgres/orgs.go | 7 +- .../infra/chef-repo/clients/chef-load-1.json | 7 + .../infra/chef-repo/clients/chef-load-2.json | 7 + 13 files changed, 311 insertions(+), 25 deletions(-) create mode 100644 components/infra-proxy-service/config/service.go create mode 100644 components/infra-proxy-service/integration_test/clients_test.go create mode 100644 components/infra-proxy-service/integration_test/global_test.go create mode 100644 components/infra-proxy-service/integration_test/suite_test.go create mode 100644 dev-docs/adding-data/infra/chef-repo/clients/chef-load-1.json create mode 100644 dev-docs/adding-data/infra/chef-repo/clients/chef-load-2.json diff --git a/.expeditor/verify_private.pipeline.yml b/.expeditor/verify_private.pipeline.yml index 78b1340697c..6f8110f13c5 100644 --- a/.expeditor/verify_private.pipeline.yml +++ b/.expeditor/verify_private.pipeline.yml @@ -429,6 +429,23 @@ steps: - HAB_STUDIO_SUP=false - HAB_NONINTERACTIVE=true + - label: "infra-proxy-service" + command: + - . scripts/verify_setup.sh + - hab studio run "source scripts/verify_studio_init.sh && start_deployment_service && chef-automate dev deployinate && infra_service_integration" + timeout_in_minutes: 20 + retry: + automatic: + limit: 1 + expeditor: + executor: + docker: + privileged: true + environment: + - HAB_STUDIO_SUP=false + - HAB_NONINTERACTIVE=true + - CONTAINER_HOSTNAME=localhost + # # The following tests all use the integration test framework for # end-to-end testing. These tests all test full deployments of diff --git a/.studio/infra-proxy-service b/.studio/infra-proxy-service index 27aab1ec650..ea3d2ca349a 100644 --- a/.studio/infra-proxy-service +++ b/.studio/infra-proxy-service @@ -11,6 +11,18 @@ function start_infra_proxy_service() { chef-automate dev deploy-some $HAB_ORIGIN/infra-proxy-service --with-deps } +document "infra_service_integration" </dev/null + )" chef.automate.domain.infra_proxy.service.InfraProxyService.CreateServer >/dev/null - chef-automate dev grpcurl automate-gateway -- -d \ + chef-automate dev grpcurl infra-proxy-service -- -d \ "$(cat << EOF {"id": "$5", "name": "$6", "admin_user": "$7", "admin_key": "$8", "server_id": "$1", "projects": []} EOF - )" chef.automate.api.infra_proxy.InfraProxy.CreateOrg >/dev/null + )" chef.automate.domain.infra_proxy.service.InfraProxyService.CreateOrg >/dev/null } function infra_service_load_chef_repo() { @@ -159,6 +171,10 @@ EOH source "https://supermarket.chef.io" cookbook "audit" +cookbook "chef-client" +cookbook "iptables" +cookbook "netdev" +cookbook "sudo" EOH if ! hab pkg exec chef/chef-dk knife opc user list -c ${chef_server_pivotal_rb_path} | grep ${chef_server_test_node_name} &> /dev/null; then diff --git a/components/infra-proxy-service/Makefile b/components/infra-proxy-service/Makefile index 6dfae0070ca..95e6090925f 100644 --- a/components/infra-proxy-service/Makefile +++ b/components/infra-proxy-service/Makefile @@ -1,6 +1,6 @@ include ../../Makefile.common_go -PACKAGE_PATH = github.com/chef/automate/components/infra-proxy-service +PACKAGE_PATH = github.com/chef/automate/components/infra-proxy-service/server BINS = ${PACKAGE_PATH}/cmd/infra-proxy-service MIGRATION_READMES = storage/postgres/migration/sql/README.md diff --git a/components/infra-proxy-service/cmd/infra-proxy-service/commands/serve.go b/components/infra-proxy-service/cmd/infra-proxy-service/commands/serve.go index 4172ea0d5c3..34137ea00cb 100644 --- a/components/infra-proxy-service/cmd/infra-proxy-service/commands/serve.go +++ b/components/infra-proxy-service/cmd/infra-proxy-service/commands/serve.go @@ -11,13 +11,13 @@ import ( secrets "github.com/chef/automate/api/external/secrets" "github.com/chef/automate/api/interservice/authz" + "github.com/chef/automate/components/infra-proxy-service/config" "github.com/chef/automate/components/infra-proxy-service/server" "github.com/chef/automate/components/infra-proxy-service/service" "github.com/chef/automate/components/infra-proxy-service/storage/postgres/migration" "github.com/chef/automate/lib/grpc/secureconn" "github.com/chef/automate/lib/logger" platform_config "github.com/chef/automate/lib/platform/config" - "github.com/chef/automate/lib/tls/certs" ) var serveCmd = &cobra.Command{ @@ -27,18 +27,6 @@ var serveCmd = &cobra.Command{ Args: cobra.ExactArgs(1), } -type config struct { - GRPC string `mapstructure:"grpc"` - LogFormat string `mapstructure:"log-format"` - LogLevel string `mapstructure:"log-level"` - certs.TLSConfig `mapstructure:"tls"` - PGURL string `mapstructure:"pg_url"` - Database string `mapstructure:"database"` - MigrationsPath string `mapstructure:"migrations-path"` - AuthzAddress string `mapstructure:"authz-address"` - SecretsAddress string `mapstructure:"secrets-address"` -} - func serve(cmd *cobra.Command, args []string) { cmd.PersistentFlags().StringP("log-level", "l", "info", "log level") cmd.PersistentFlags().StringP("log-format", "f", "text", "log format") @@ -53,7 +41,7 @@ func serve(cmd *cobra.Command, args []string) { fail(errors.Wrap(err, `Could not read config file. Please pass a config file as the only argument to this command.`)) } - cfg := config{} + cfg := config.Service{} if err := viper.Unmarshal(&cfg); err != nil { fail(errors.Wrap(err, "couldn't parse configuration file")) } diff --git a/components/infra-proxy-service/config/service.go b/components/infra-proxy-service/config/service.go new file mode 100644 index 00000000000..7040f7d09be --- /dev/null +++ b/components/infra-proxy-service/config/service.go @@ -0,0 +1,124 @@ +package config + +import ( + "fmt" + "net/url" + "os" + + "github.com/pkg/errors" + "github.com/spf13/viper" + + secrets "github.com/chef/automate/api/external/secrets" + "github.com/chef/automate/api/interservice/authz" + "github.com/chef/automate/components/infra-proxy-service/service" + "github.com/chef/automate/components/infra-proxy-service/storage/postgres/migration" + "github.com/chef/automate/lib/grpc/secureconn" + "github.com/chef/automate/lib/logger" + platform_config "github.com/chef/automate/lib/platform/config" + "github.com/chef/automate/lib/tls/certs" +) + +// Service config options +type Service struct { + GRPC string `mapstructure:"grpc"` + LogFormat string `mapstructure:"log-format"` + LogLevel string `mapstructure:"log-level"` + certs.TLSConfig `mapstructure:"tls"` + PGURL string `mapstructure:"pg_url"` + Database string `mapstructure:"database"` + MigrationsPath string `mapstructure:"migrations-path"` + AuthzAddress string `mapstructure:"authz-address"` + SecretsAddress string `mapstructure:"secrets-address"` +} + +// ConfigFromViper returns a Service instance from the current viper config +func ConfigFromViper(configFile string) (*service.Service, error) { + // Set the file name of the configurations file + viper.SetConfigName("config") + // Set the configuration file type + viper.SetConfigType("yaml") + // Set the path to look for the configurations file + viper.AddConfigPath("../dev") + + if err := viper.ReadInConfig(); err != nil { + fail(errors.Wrap(err, `Could not read config file. Please pass a config file as the only argument to this command.`)) + } + + cfg := Service{} + if err := viper.Unmarshal(&cfg); err != nil { + fail(errors.Wrap(err, "couldn't parse configuration file")) + } + + pgURL, err := platform_config.PGURIFromEnvironment(cfg.Database) + if err != nil { + fail(errors.Wrap(err, "Failed to get pg uri")) + } + cfg.PGURL = pgURL + + l, err := logger.NewLogger(cfg.LogFormat, cfg.LogLevel) + if err != nil { + fail(errors.Wrap(err, "couldn't initialize logger")) + } + + cfg.FixupRelativeTLSPaths(configFile) + serviceCerts, err := cfg.ReadCerts() + if err != nil { + fail(errors.Wrap(err, "Could not read certs")) + } + connFactory := secureconn.NewFactory(*serviceCerts) + + mustBeADirectory(cfg.MigrationsPath) + u, err := url.Parse(cfg.PGURL) + if err != nil { + fail(errors.Wrapf(err, "could not parse pg_url %s from config", cfg.PGURL)) + } + migrationConfig := migration.Config{ + Path: cfg.MigrationsPath, + PGURL: u, + Logger: l, + } + + if cfg.AuthzAddress == "" { + fail(errors.New("missing required config authz_address")) + } + authzConn, err := connFactory.Dial("authz-service", cfg.AuthzAddress) + if err != nil { + fail(errors.Wrapf(err, "failed to dial authz-service at (%s)", cfg.AuthzAddress)) + } + authzClient := authz.NewAuthorizationServiceClient(authzConn) + + if cfg.SecretsAddress == "" { + fail(errors.New("missing required config secrets_address")) + } + secretsConn, err := connFactory.Dial("secrets-service", cfg.SecretsAddress) + if err != nil { + fail(errors.Wrapf(err, "failed to dial secrets-service at (%s)", cfg.SecretsAddress)) + } + + // gets secrets client + secretsClient := secrets.NewSecretsServiceClient(secretsConn) + + service, err := service.Start(l, migrationConfig, connFactory, secretsClient, authzClient) + if err != nil { + fail(errors.Wrap(err, "could not initialize storage")) + } + + return service, nil +} + +// fail outputs the error and exits with a non-zero code +func fail(err error) { + // no error check: if this goes wrong, we're in trouble anyways + fmt.Fprint(os.Stderr, err.Error()) // nolint: gas + os.Exit(1) +} + +func mustBeADirectory(path string) { + stat, err := os.Stat(path) + if err == nil && stat.IsDir() { + return // everything's in its right place + } else if err != nil { + fail(errors.Wrapf(err, "open path %#v", path)) + } + fail(fmt.Errorf("path %#v is not a directory", path)) +} diff --git a/components/infra-proxy-service/dev/config.yml b/components/infra-proxy-service/dev/config.yml index 8f60479ec10..8e89b4bb4ba 100644 --- a/components/infra-proxy-service/dev/config.yml +++ b/components/infra-proxy-service/dev/config.yml @@ -4,12 +4,12 @@ log-level: "info" log-format: "text" tls: - cert_path: ../../../dev/certs/infra-proxy-service.crt - key_path: ../../../dev/certs/infra-proxy-service.key - root_ca_path: ../../../dev/certs/Chef_Automate_FAKE_Dev.crt + cert_path: /hab/svc/infra-proxy-service/config/service.crt + key_path: /hab/svc/infra-proxy-service/config/service.key + root_ca_path: /hab/svc/infra-proxy-service/config/root_ca.crt pg_url: "postgresql://postgres@127.0.0.1:5432/infra_proxy_test?sslmode=disable" -database: infra_proxy_test -migrations-path: storage/postgres/migration/sql/ +database: chef_infra_proxy +migrations-path: /src/components/infra-proxy-service/storage/postgres/migration/sql/ authz-address: "0.0.0.0:10130" secrets-address: "0.0.0.0:10131" diff --git a/components/infra-proxy-service/integration_test/clients_test.go b/components/infra-proxy-service/integration_test/clients_test.go new file mode 100644 index 00000000000..767bb5d8100 --- /dev/null +++ b/components/infra-proxy-service/integration_test/clients_test.go @@ -0,0 +1,36 @@ +package integration_test + +import ( + "context" + "testing" + + "github.com/chef/automate/api/interservice/infra_proxy/request" + "github.com/stretchr/testify/assert" +) + +func TestGetClients(t *testing.T) { + // rpc GetClients (request.Clients) returns (response.Clients) + ctx := context.Background() + req := &request.Clients{ + ServerId: autoDeployedChefServerID, + OrgId: autoDeployedChefOrganizationID, + } + res, err := infraProxy.GetClients(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, 3, len(res.GetClients())) +} + +func TestGetClient(t *testing.T) { + // rpc GetClient (request.Client) returns (response.Client) + ctx := context.Background() + req := &request.Client{ + ServerId: autoDeployedChefServerID, + OrgId: autoDeployedChefOrganizationID, + Name: "chef-load-1", + } + res, err := infraProxy.GetClient(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, "chef-load-1", res.Name) +} diff --git a/components/infra-proxy-service/integration_test/global_test.go b/components/infra-proxy-service/integration_test/global_test.go new file mode 100644 index 00000000000..d81ca36a4ad --- /dev/null +++ b/components/infra-proxy-service/integration_test/global_test.go @@ -0,0 +1,33 @@ +package integration_test + +import ( + "os" + "testing" +) + +// Global variables +var ( + autoDeployedChefServerID = "local-dev" + autoDeployedChefOrganizationID = "test-org" + cFile = "/src/components/infra-proxy-service/dev/config" + // This suite variable will be available for every single test as long as they + // belong to the 'integration_test' package. + suite = NewSuite() +) + +func TestMain(m *testing.M) { + // Global Setup hook: Here is where you can initialize anythings you need + // for your tests to run, things like; Initialize ES indices, insert + // nodes or runs, etc. + suite.GlobalSetup() + + // Execute the test suite and record the exit code + exitCode := m.Run() + + // Teardown hook: It says it all, this hook should clean documents + // from ES so that the next test can run on a clean env. + suite.GlobalTeardown() + + // call with result of m.Run() + os.Exit(exitCode) +} diff --git a/components/infra-proxy-service/integration_test/suite_test.go b/components/infra-proxy-service/integration_test/suite_test.go new file mode 100644 index 00000000000..d4c34a931f1 --- /dev/null +++ b/components/infra-proxy-service/integration_test/suite_test.go @@ -0,0 +1,52 @@ +package integration_test + +import ( + "github.com/chef/automate/components/infra-proxy-service/config" + "github.com/chef/automate/components/infra-proxy-service/server" +) + +// Global variables +var ( + // A global Infra Proxy Server instance to call any rpc function + // + // From any test you can directly call: + // ``` + // res, err := infraProxy.GetOrgs(ctx, &req) + // ``` + infraProxy *server.Server +) + +type Suite struct{} + +// Just returns a new struct. You have to call GlobalSetup() to setup +func NewSuite() *Suite { + return new(Suite) +} + +// GlobalSetup makes all connections. +func (s *Suite) GlobalSetup() error { + var err error + // set global infraProxy + infraProxy, err = newInfraProxyServer() + + if err != nil { + return err + } + + return nil +} + +// GlobalTeardown is the place where you tear everything down after we have finished +func (s *Suite) GlobalTeardown() {} + +// newInfraProxyServer initializes a InfraProxyServer with the default config +func newInfraProxyServer() (*server.Server, error) { + service, err := config.ConfigFromViper(cFile) + if err != nil { + return nil, err + } + + gRPC := server.NewServer(service) + + return gRPC, nil +} diff --git a/components/infra-proxy-service/server/clients.go b/components/infra-proxy-service/server/clients.go index 4dd97475010..d4a7a872501 100644 --- a/components/infra-proxy-service/server/clients.go +++ b/components/infra-proxy-service/server/clients.go @@ -13,6 +13,7 @@ import ( // GetClients get clients list func (s *Server) GetClients(ctx context.Context, req *request.Clients) (*response.Clients, error) { c, err := s.createClient(ctx, req.OrgId, req.ServerId) + if err != nil { return nil, err } diff --git a/components/infra-proxy-service/storage/postgres/orgs.go b/components/infra-proxy-service/storage/postgres/orgs.go index 8d2fc007a86..b325fcb4172 100644 --- a/components/infra-proxy-service/storage/postgres/orgs.go +++ b/components/infra-proxy-service/storage/postgres/orgs.go @@ -25,8 +25,13 @@ func (p *postgres) insertOrg(ctx context.Context, projects = []string{} } + // Adding the subjects if missing if gRPC calls from internal service level + subjects := auth_context.FromContext(auth_context.FromIncomingMetadata(ctx)).Subjects + if len(subjects) == 0 { + subjects = []string{"tls:service:compliance-service:internal"} + } _, err := p.authzClient.ValidateProjectAssignment(ctx, &authz.ValidateProjectAssignmentReq{ - Subjects: auth_context.FromContext(auth_context.FromIncomingMetadata(ctx)).Subjects, + Subjects: subjects, OldProjects: []string{}, NewProjects: projects, }) diff --git a/dev-docs/adding-data/infra/chef-repo/clients/chef-load-1.json b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-1.json new file mode 100644 index 00000000000..c2ae2a8b327 --- /dev/null +++ b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-1.json @@ -0,0 +1,7 @@ +{ + "name": "chef-load-1", + "validator": false, + "admin": false, + "chef_type": "client", + "create_key": false +} diff --git a/dev-docs/adding-data/infra/chef-repo/clients/chef-load-2.json b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-2.json new file mode 100644 index 00000000000..0f7bb638212 --- /dev/null +++ b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-2.json @@ -0,0 +1,7 @@ +{ + "name": "chef-load-2", + "validator": false, + "admin": false, + "chef_type": "client", + "create_key": false +} From 201229496734d0add97c7fc820f9197ac4e11f00 Mon Sep 17 00:00:00 2001 From: Jay Mundrawala Date: Wed, 10 Feb 2021 20:55:41 -0600 Subject: [PATCH 17/34] Update the license control service tests to not panic (#4676) Signed-off-by: Jay Mundrawala --- components/license-control-service/pkg/server/server_test.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/license-control-service/pkg/server/server_test.go b/components/license-control-service/pkg/server/server_test.go index 18f50d76a99..422401b5a08 100644 --- a/components/license-control-service/pkg/server/server_test.go +++ b/components/license-control-service/pkg/server/server_test.go @@ -56,7 +56,8 @@ func TestAppliedLicense(t *testing.T) { } srv := testLicenseControlServer(t) - srv.Update(context.Background(), &lc.UpdateRequest{LicenseData: string(validLicenseData)}) + _, err := srv.Update(context.Background(), &lc.UpdateRequest{LicenseData: string(validLicenseData)}) + require.NoError(t, err) t.Run("License() with a valid license applied", func(t *testing.T) { res, err := srv.License( @@ -64,6 +65,7 @@ func TestAppliedLicense(t *testing.T) { &lc.LicenseRequest{}, ) require.NoError(t, err) + require.NotNil(t, res.GetLicense()) assert.NotNil(t, res.License.Id, "License should include a license ID") assert.Equal(t, "44c6e9d1-98f6-4b4a-857f-d15da015f05f", res.License.CustomerId, "License should be valid") }) From 96800f032402b616a5b4dfc7addc2b9125556c9b Mon Sep 17 00:00:00 2001 From: Vivek Singh Date: Thu, 11 Feb 2021 15:55:03 +0530 Subject: [PATCH 18/34] [infra-proxy-service] reset node client key, create client & delete client API (#4592) * Reset client key Signed-off-by: Vivek Singh * Fixes client reset issue and ignore 404 while deleting the client Signed-off-by: Vivek Singh * Remove clientname optional params & minor comments update Signed-off-by: Vivek Singh * Updated client detail API with key data Signed-off-by: Vivek Singh * indentation changes and comments update Signed-off-by: Vivek Singh * fixes indentation to spaces Signed-off-by: Vivek Singh * comments updated Signed-off-by: Vivek Singh * Rebase changes and comments update Signed-off-by: Vivek Singh * comments update Signed-off-by: Vivek Singh --- api/external/infra_proxy/infra_proxy.pb.go | 1008 ++++++++++------- api/external/infra_proxy/infra_proxy.pb.gw.go | 436 +++++++ .../infra_proxy/infra_proxy.pb.policy.go | 53 + api/external/infra_proxy/infra_proxy.proto | 19 +- .../infra_proxy/infra_proxy.swagger.json | 243 ++++ .../infra_proxy/request/clients.pb.go | 219 +++- .../infra_proxy/request/clients.proto | 24 + .../infra_proxy/response/clients.pb.go | 310 ++++- .../infra_proxy/response/clients.proto | 57 +- .../infra_proxy/request/clients.pb.go | 221 +++- .../infra_proxy/request/clients.proto | 24 + .../infra_proxy/response/clients.pb.go | 310 ++++- .../infra_proxy/response/clients.proto | 57 +- .../infra_proxy/service/infra_proxy.pb.go | 654 ++++++----- .../infra_proxy/service/infra_proxy.proto | 3 + .../api/infra_proxy.pb.swagger.go | 243 ++++ .../handler/infra_proxy/clients.go | 67 ++ .../infra_proxy/infra_proxy.swagger.json | 243 ++++ .../infra-proxy-service/server/clients.go | 156 ++- 19 files changed, 3588 insertions(+), 759 deletions(-) diff --git a/api/external/infra_proxy/infra_proxy.pb.go b/api/external/infra_proxy/infra_proxy.pb.go index a3896bc8746..2a3955f855d 100644 --- a/api/external/infra_proxy/infra_proxy.pb.go +++ b/api/external/infra_proxy/infra_proxy.pb.go @@ -94,7 +94,7 @@ var file_external_infra_proxy_infra_proxy_proto_rawDesc = []byte{ 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xa7, 0x57, 0x0a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xf3, 0x5d, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0xc7, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, @@ -447,357 +447,409 @@ var file_external_infra_proxy_infra_proxy_proto_rawDesc = []byte{ 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, - 0x8c, 0x02, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x12, - 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, - 0x1a, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x98, 0x02, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x12, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, - 0x67, 0x73, 0x22, 0x99, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, - 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, - 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, - 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, - 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0x9b, - 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, - 0x6d, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, - 0x67, 0x1a, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, - 0x61, 0x67, 0x22, 0xa7, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, - 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, - 0x74, 0x65, 0x6d, 0x7d, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, - 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, - 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xa4, 0x02, 0x0a, - 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, 0x34, - 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x42, 0x61, 0x67, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0xa5, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x3b, 0x22, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x39, 0x22, 0x37, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, - 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, + 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x31, 0x0a, 0x2f, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x3a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, + 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, + 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x8a, 0x02, 0x0a, 0x0c, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x40, 0x2a, 0x3e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x31, 0x0a, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, + 0x3a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, - 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, - 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x12, 0xb7, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, - 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, - 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, - 0x74, 0x65, 0x6d, 0x1a, 0x39, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0xac, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x22, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, + 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xa1, 0x02, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x65, + 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x30, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x31, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, + 0xa9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x1a, 0x44, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x31, 0x0a, 0x2f, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x3a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, + 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, + 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x8c, 0x02, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x1a, 0x30, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x22, 0x99, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, - 0x67, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, - 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, + 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, - 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x96, 0x02, - 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, - 0x2e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, - 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0x9b, 0x02, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2e, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x2f, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0xa7, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, + 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, + 0x67, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x7d, + 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, + 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x18, + 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xa4, 0x02, 0x0a, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, + 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0xa5, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, + 0x22, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, + 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, + 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0xb7, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x1a, + 0x39, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, - 0x22, 0xa3, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x2a, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x62, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x38, 0x0a, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0xac, 0x01, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x42, 0x22, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, + 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, + 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x96, 0x02, 0x0a, 0x0d, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, 0x2e, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x2f, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0xa3, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x2a, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, + 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, + 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, + 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x12, 0xc1, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, + 0x65, 0x6d, 0x1a, 0x39, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0xb6, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x1a, 0x4a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, + 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, + 0x64, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xc1, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x38, 0x2e, 0x63, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x9e, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, + 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x9f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x3b, + 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, + 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, + 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xa2, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x33, + 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, + 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xb0, 0x02, 0x0a, + 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, - 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x39, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, - 0x6d, 0x22, 0xb6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x1a, 0x4a, 0x2f, 0x61, 0x70, 0x69, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0xab, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x22, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x5f, 0x62, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x74, - 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, - 0xb5, 0x18, 0x38, 0x0a, 0x36, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, - 0x7d, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, + 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, + 0x2a, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, + 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0xa8, 0x02, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xa9, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x2a, 0x43, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, + 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x3b, + 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, + 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x9e, 0x02, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, - 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x9f, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, - 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, - 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xa2, 0x02, 0x0a, 0x0e, - 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, + 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xb7, 0x02, 0x0a, 0x11, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0xb2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x1a, 0x43, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, + 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0xbc, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x6e, 0x74, 0x1a, 0x3e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, - 0x12, 0x43, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, - 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, - 0x12, 0xb0, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xab, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x22, 0x3c, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, - 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x12, 0xa8, 0x02, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, - 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, - 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x33, 0x2e, - 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0xa9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x2a, 0x43, 0x2f, 0x61, 0x70, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0xae, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x12, 0x4b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, - 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, - 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xb7, - 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x33, + 0x2f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, + 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, + 0x67, 0x65, 0x74, 0x12, 0xfb, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x12, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0xb2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x1a, 0x43, 0x2f, 0x61, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x91, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x35, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, + 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, + 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, + 0x74, 0x12, 0xaf, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x35, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x22, 0xad, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x12, 0x51, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, 0x3b, 0x0a, 0x39, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, - 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xbc, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, - 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, - 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x3e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, - 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xae, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x12, - 0x4b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x3b, - 0x0a, 0x39, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, - 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x65, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, - 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xfb, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x4e, - 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x73, 0x1a, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2d, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x68, + 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, + 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, + 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, + 0x67, 0x65, 0x74, 0x12, 0x91, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, - 0x73, 0x22, 0x91, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x35, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, - 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, - 0x69, 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0xaf, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x65, - 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, - 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0xad, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, - 0x12, 0x51, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2d, 0x6e, 0x6f, 0x64, 0x65, 0x73, - 0x2f, 0x7b, 0x63, 0x68, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, - 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, - 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0x91, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, + 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x9b, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3e, 0x2a, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, + 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x9a, 0x02, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x9b, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x2a, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, + 0x73, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0xa4, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x1a, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, - 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x1b, - 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x9a, 0x02, 0x0a, 0x0a, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, - 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x32, 0x2e, + 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, 0x2a, 0x8a, 0xb5, 0x18, + 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0xff, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, + 0x12, 0x2b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x22, 0xa4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x1a, 0x3c, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x03, 0x3a, 0x01, - 0x2a, 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, - 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, - 0x69, 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x1b, 0x12, 0x19, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xff, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, - 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x1a, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x22, - 0x98, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, - 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, - 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0x99, 0x02, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x32, 0x2e, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x98, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x34, 0x0a, 0x32, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, + 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0x99, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x9d, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, - 0x3b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x3a, - 0x0a, 0x38, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, - 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x12, 0x9d, 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, - 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x22, - 0xa4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x12, 0x42, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x3a, - 0x0a, 0x38, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, - 0x3a, 0x6f, 0x72, 0x67, 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x3a, 0x67, 0x65, 0x74, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, - 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x22, 0x9d, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, + 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x3a, 0x0a, 0x38, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, + 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, + 0x65, 0x74, 0x12, 0x9d, 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x66, 0x69, 0x6c, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x22, 0xa4, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x44, 0x12, 0x42, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x8a, 0xb5, 0x18, 0x3a, 0x0a, 0x38, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x3a, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x6f, 0x72, 0x67, + 0x73, 0x3a, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x8a, 0xb5, 0x18, 0x18, 0x12, 0x16, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x3a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3a, 0x67, + 0x65, 0x74, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_external_infra_proxy_infra_proxy_proto_goTypes = []interface{}{ @@ -822,56 +874,60 @@ var file_external_infra_proxy_infra_proxy_proto_goTypes = []interface{}{ (*request.UpdateRole)(nil), // 18: chef.automate.api.infra_proxy.request.UpdateRole (*request.Clients)(nil), // 19: chef.automate.api.infra_proxy.request.Clients (*request.Client)(nil), // 20: chef.automate.api.infra_proxy.request.Client - (*request.DataBags)(nil), // 21: chef.automate.api.infra_proxy.request.DataBags - (*request.DataBag)(nil), // 22: chef.automate.api.infra_proxy.request.DataBag - (*request.CreateDataBag)(nil), // 23: chef.automate.api.infra_proxy.request.CreateDataBag - (*request.CreateDataBagItem)(nil), // 24: chef.automate.api.infra_proxy.request.CreateDataBagItem - (*request.UpdateDataBagItem)(nil), // 25: chef.automate.api.infra_proxy.request.UpdateDataBagItem - (*request.Environments)(nil), // 26: chef.automate.api.infra_proxy.request.Environments - (*request.Environment)(nil), // 27: chef.automate.api.infra_proxy.request.Environment - (*request.CreateEnvironment)(nil), // 28: chef.automate.api.infra_proxy.request.CreateEnvironment - (*request.UpdateEnvironment)(nil), // 29: chef.automate.api.infra_proxy.request.UpdateEnvironment - (*request.Nodes)(nil), // 30: chef.automate.api.infra_proxy.request.Nodes - (*request.AffectedNodes)(nil), // 31: chef.automate.api.infra_proxy.request.AffectedNodes - (*request.DeleteNode)(nil), // 32: chef.automate.api.infra_proxy.request.DeleteNode - (*request.UpdateNode)(nil), // 33: chef.automate.api.infra_proxy.request.UpdateNode - (*request.Node)(nil), // 34: chef.automate.api.infra_proxy.request.Node - (*request.Policyfiles)(nil), // 35: chef.automate.api.infra_proxy.request.Policyfiles - (*request.Policyfile)(nil), // 36: chef.automate.api.infra_proxy.request.Policyfile - (*response.GetServers)(nil), // 37: chef.automate.api.infra_proxy.response.GetServers - (*response.GetServer)(nil), // 38: chef.automate.api.infra_proxy.response.GetServer - (*response.CreateServer)(nil), // 39: chef.automate.api.infra_proxy.response.CreateServer - (*response.UpdateServer)(nil), // 40: chef.automate.api.infra_proxy.response.UpdateServer - (*response.DeleteServer)(nil), // 41: chef.automate.api.infra_proxy.response.DeleteServer - (*response.GetOrgs)(nil), // 42: chef.automate.api.infra_proxy.response.GetOrgs - (*response.GetOrg)(nil), // 43: chef.automate.api.infra_proxy.response.GetOrg - (*response.CreateOrg)(nil), // 44: chef.automate.api.infra_proxy.response.CreateOrg - (*response.UpdateOrg)(nil), // 45: chef.automate.api.infra_proxy.response.UpdateOrg - (*response.DeleteOrg)(nil), // 46: chef.automate.api.infra_proxy.response.DeleteOrg - (*response.ResetOrgAdminKey)(nil), // 47: chef.automate.api.infra_proxy.response.ResetOrgAdminKey - (*response.Cookbooks)(nil), // 48: chef.automate.api.infra_proxy.response.Cookbooks - (*response.CookbookVersions)(nil), // 49: chef.automate.api.infra_proxy.response.CookbookVersions - (*response.Cookbook)(nil), // 50: chef.automate.api.infra_proxy.response.Cookbook - (*response.CookbookFileContent)(nil), // 51: chef.automate.api.infra_proxy.response.CookbookFileContent - (*response.Roles)(nil), // 52: chef.automate.api.infra_proxy.response.Roles - (*response.Role)(nil), // 53: chef.automate.api.infra_proxy.response.Role - (*response.Clients)(nil), // 54: chef.automate.api.infra_proxy.response.Clients - (*response.Client)(nil), // 55: chef.automate.api.infra_proxy.response.Client - (*response.DataBags)(nil), // 56: chef.automate.api.infra_proxy.response.DataBags - (*response.DataBag)(nil), // 57: chef.automate.api.infra_proxy.response.DataBag - (*response.CreateDataBag)(nil), // 58: chef.automate.api.infra_proxy.response.CreateDataBag - (*response.CreateDataBagItem)(nil), // 59: chef.automate.api.infra_proxy.response.CreateDataBagItem - (*response.UpdateDataBagItem)(nil), // 60: chef.automate.api.infra_proxy.response.UpdateDataBagItem - (*response.Environments)(nil), // 61: chef.automate.api.infra_proxy.response.Environments - (*response.Environment)(nil), // 62: chef.automate.api.infra_proxy.response.Environment - (*response.EnvironmentRecipesList)(nil), // 63: chef.automate.api.infra_proxy.response.EnvironmentRecipesList - (*response.Nodes)(nil), // 64: chef.automate.api.infra_proxy.response.Nodes - (*response.AffectedNodes)(nil), // 65: chef.automate.api.infra_proxy.response.AffectedNodes - (*response.DeleteNode)(nil), // 66: chef.automate.api.infra_proxy.response.DeleteNode - (*response.UpdateNode)(nil), // 67: chef.automate.api.infra_proxy.response.UpdateNode - (*response.Node)(nil), // 68: chef.automate.api.infra_proxy.response.Node - (*response.Policyfiles)(nil), // 69: chef.automate.api.infra_proxy.response.Policyfiles - (*response.Policyfile)(nil), // 70: chef.automate.api.infra_proxy.response.Policyfile + (*request.CreateClient)(nil), // 21: chef.automate.api.infra_proxy.request.CreateClient + (*request.ClientKey)(nil), // 22: chef.automate.api.infra_proxy.request.ClientKey + (*request.DataBags)(nil), // 23: chef.automate.api.infra_proxy.request.DataBags + (*request.DataBag)(nil), // 24: chef.automate.api.infra_proxy.request.DataBag + (*request.CreateDataBag)(nil), // 25: chef.automate.api.infra_proxy.request.CreateDataBag + (*request.CreateDataBagItem)(nil), // 26: chef.automate.api.infra_proxy.request.CreateDataBagItem + (*request.UpdateDataBagItem)(nil), // 27: chef.automate.api.infra_proxy.request.UpdateDataBagItem + (*request.Environments)(nil), // 28: chef.automate.api.infra_proxy.request.Environments + (*request.Environment)(nil), // 29: chef.automate.api.infra_proxy.request.Environment + (*request.CreateEnvironment)(nil), // 30: chef.automate.api.infra_proxy.request.CreateEnvironment + (*request.UpdateEnvironment)(nil), // 31: chef.automate.api.infra_proxy.request.UpdateEnvironment + (*request.Nodes)(nil), // 32: chef.automate.api.infra_proxy.request.Nodes + (*request.AffectedNodes)(nil), // 33: chef.automate.api.infra_proxy.request.AffectedNodes + (*request.DeleteNode)(nil), // 34: chef.automate.api.infra_proxy.request.DeleteNode + (*request.UpdateNode)(nil), // 35: chef.automate.api.infra_proxy.request.UpdateNode + (*request.Node)(nil), // 36: chef.automate.api.infra_proxy.request.Node + (*request.Policyfiles)(nil), // 37: chef.automate.api.infra_proxy.request.Policyfiles + (*request.Policyfile)(nil), // 38: chef.automate.api.infra_proxy.request.Policyfile + (*response.GetServers)(nil), // 39: chef.automate.api.infra_proxy.response.GetServers + (*response.GetServer)(nil), // 40: chef.automate.api.infra_proxy.response.GetServer + (*response.CreateServer)(nil), // 41: chef.automate.api.infra_proxy.response.CreateServer + (*response.UpdateServer)(nil), // 42: chef.automate.api.infra_proxy.response.UpdateServer + (*response.DeleteServer)(nil), // 43: chef.automate.api.infra_proxy.response.DeleteServer + (*response.GetOrgs)(nil), // 44: chef.automate.api.infra_proxy.response.GetOrgs + (*response.GetOrg)(nil), // 45: chef.automate.api.infra_proxy.response.GetOrg + (*response.CreateOrg)(nil), // 46: chef.automate.api.infra_proxy.response.CreateOrg + (*response.UpdateOrg)(nil), // 47: chef.automate.api.infra_proxy.response.UpdateOrg + (*response.DeleteOrg)(nil), // 48: chef.automate.api.infra_proxy.response.DeleteOrg + (*response.ResetOrgAdminKey)(nil), // 49: chef.automate.api.infra_proxy.response.ResetOrgAdminKey + (*response.Cookbooks)(nil), // 50: chef.automate.api.infra_proxy.response.Cookbooks + (*response.CookbookVersions)(nil), // 51: chef.automate.api.infra_proxy.response.CookbookVersions + (*response.Cookbook)(nil), // 52: chef.automate.api.infra_proxy.response.Cookbook + (*response.CookbookFileContent)(nil), // 53: chef.automate.api.infra_proxy.response.CookbookFileContent + (*response.Roles)(nil), // 54: chef.automate.api.infra_proxy.response.Roles + (*response.Role)(nil), // 55: chef.automate.api.infra_proxy.response.Role + (*response.Clients)(nil), // 56: chef.automate.api.infra_proxy.response.Clients + (*response.Client)(nil), // 57: chef.automate.api.infra_proxy.response.Client + (*response.CreateClient)(nil), // 58: chef.automate.api.infra_proxy.response.CreateClient + (*response.ClientKey)(nil), // 59: chef.automate.api.infra_proxy.response.ClientKey + (*response.DataBags)(nil), // 60: chef.automate.api.infra_proxy.response.DataBags + (*response.DataBag)(nil), // 61: chef.automate.api.infra_proxy.response.DataBag + (*response.CreateDataBag)(nil), // 62: chef.automate.api.infra_proxy.response.CreateDataBag + (*response.CreateDataBagItem)(nil), // 63: chef.automate.api.infra_proxy.response.CreateDataBagItem + (*response.UpdateDataBagItem)(nil), // 64: chef.automate.api.infra_proxy.response.UpdateDataBagItem + (*response.Environments)(nil), // 65: chef.automate.api.infra_proxy.response.Environments + (*response.Environment)(nil), // 66: chef.automate.api.infra_proxy.response.Environment + (*response.EnvironmentRecipesList)(nil), // 67: chef.automate.api.infra_proxy.response.EnvironmentRecipesList + (*response.Nodes)(nil), // 68: chef.automate.api.infra_proxy.response.Nodes + (*response.AffectedNodes)(nil), // 69: chef.automate.api.infra_proxy.response.AffectedNodes + (*response.DeleteNode)(nil), // 70: chef.automate.api.infra_proxy.response.DeleteNode + (*response.UpdateNode)(nil), // 71: chef.automate.api.infra_proxy.response.UpdateNode + (*response.Node)(nil), // 72: chef.automate.api.infra_proxy.response.Node + (*response.Policyfiles)(nil), // 73: chef.automate.api.infra_proxy.response.Policyfiles + (*response.Policyfile)(nil), // 74: chef.automate.api.infra_proxy.response.Policyfile } var file_external_infra_proxy_infra_proxy_proto_depIdxs = []int32{ 0, // 0: chef.automate.api.infra_proxy.InfraProxy.GetServers:input_type -> chef.automate.api.infra_proxy.request.GetServers @@ -896,68 +952,74 @@ var file_external_infra_proxy_infra_proxy_proto_depIdxs = []int32{ 18, // 19: chef.automate.api.infra_proxy.InfraProxy.UpdateRole:input_type -> chef.automate.api.infra_proxy.request.UpdateRole 19, // 20: chef.automate.api.infra_proxy.InfraProxy.GetClients:input_type -> chef.automate.api.infra_proxy.request.Clients 20, // 21: chef.automate.api.infra_proxy.InfraProxy.GetClient:input_type -> chef.automate.api.infra_proxy.request.Client - 21, // 22: chef.automate.api.infra_proxy.InfraProxy.GetDataBags:input_type -> chef.automate.api.infra_proxy.request.DataBags - 22, // 23: chef.automate.api.infra_proxy.InfraProxy.GetDataBagItem:input_type -> chef.automate.api.infra_proxy.request.DataBag - 23, // 24: chef.automate.api.infra_proxy.InfraProxy.CreateDataBag:input_type -> chef.automate.api.infra_proxy.request.CreateDataBag - 24, // 25: chef.automate.api.infra_proxy.InfraProxy.CreateDataBagItem:input_type -> chef.automate.api.infra_proxy.request.CreateDataBagItem - 22, // 26: chef.automate.api.infra_proxy.InfraProxy.DeleteDataBag:input_type -> chef.automate.api.infra_proxy.request.DataBag - 25, // 27: chef.automate.api.infra_proxy.InfraProxy.UpdateDataBagItem:input_type -> chef.automate.api.infra_proxy.request.UpdateDataBagItem - 26, // 28: chef.automate.api.infra_proxy.InfraProxy.GetEnvironments:input_type -> chef.automate.api.infra_proxy.request.Environments - 27, // 29: chef.automate.api.infra_proxy.InfraProxy.GetEnvironment:input_type -> chef.automate.api.infra_proxy.request.Environment - 28, // 30: chef.automate.api.infra_proxy.InfraProxy.CreateEnvironment:input_type -> chef.automate.api.infra_proxy.request.CreateEnvironment - 27, // 31: chef.automate.api.infra_proxy.InfraProxy.DeleteEnvironment:input_type -> chef.automate.api.infra_proxy.request.Environment - 29, // 32: chef.automate.api.infra_proxy.InfraProxy.UpdateEnvironment:input_type -> chef.automate.api.infra_proxy.request.UpdateEnvironment - 27, // 33: chef.automate.api.infra_proxy.InfraProxy.GetEnvironmentRecipes:input_type -> chef.automate.api.infra_proxy.request.Environment - 30, // 34: chef.automate.api.infra_proxy.InfraProxy.GetNodes:input_type -> chef.automate.api.infra_proxy.request.Nodes - 31, // 35: chef.automate.api.infra_proxy.InfraProxy.GetAffectedNodes:input_type -> chef.automate.api.infra_proxy.request.AffectedNodes - 32, // 36: chef.automate.api.infra_proxy.InfraProxy.DeleteNode:input_type -> chef.automate.api.infra_proxy.request.DeleteNode - 33, // 37: chef.automate.api.infra_proxy.InfraProxy.UpdateNode:input_type -> chef.automate.api.infra_proxy.request.UpdateNode - 34, // 38: chef.automate.api.infra_proxy.InfraProxy.GetNode:input_type -> chef.automate.api.infra_proxy.request.Node - 35, // 39: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfiles:input_type -> chef.automate.api.infra_proxy.request.Policyfiles - 36, // 40: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfile:input_type -> chef.automate.api.infra_proxy.request.Policyfile - 37, // 41: chef.automate.api.infra_proxy.InfraProxy.GetServers:output_type -> chef.automate.api.infra_proxy.response.GetServers - 38, // 42: chef.automate.api.infra_proxy.InfraProxy.GetServer:output_type -> chef.automate.api.infra_proxy.response.GetServer - 39, // 43: chef.automate.api.infra_proxy.InfraProxy.CreateServer:output_type -> chef.automate.api.infra_proxy.response.CreateServer - 40, // 44: chef.automate.api.infra_proxy.InfraProxy.UpdateServer:output_type -> chef.automate.api.infra_proxy.response.UpdateServer - 41, // 45: chef.automate.api.infra_proxy.InfraProxy.DeleteServer:output_type -> chef.automate.api.infra_proxy.response.DeleteServer - 42, // 46: chef.automate.api.infra_proxy.InfraProxy.GetOrgs:output_type -> chef.automate.api.infra_proxy.response.GetOrgs - 43, // 47: chef.automate.api.infra_proxy.InfraProxy.GetOrg:output_type -> chef.automate.api.infra_proxy.response.GetOrg - 44, // 48: chef.automate.api.infra_proxy.InfraProxy.CreateOrg:output_type -> chef.automate.api.infra_proxy.response.CreateOrg - 45, // 49: chef.automate.api.infra_proxy.InfraProxy.UpdateOrg:output_type -> chef.automate.api.infra_proxy.response.UpdateOrg - 46, // 50: chef.automate.api.infra_proxy.InfraProxy.DeleteOrg:output_type -> chef.automate.api.infra_proxy.response.DeleteOrg - 47, // 51: chef.automate.api.infra_proxy.InfraProxy.ResetOrgAdminKey:output_type -> chef.automate.api.infra_proxy.response.ResetOrgAdminKey - 48, // 52: chef.automate.api.infra_proxy.InfraProxy.GetCookbooks:output_type -> chef.automate.api.infra_proxy.response.Cookbooks - 49, // 53: chef.automate.api.infra_proxy.InfraProxy.GetCookbookVersions:output_type -> chef.automate.api.infra_proxy.response.CookbookVersions - 50, // 54: chef.automate.api.infra_proxy.InfraProxy.GetCookbook:output_type -> chef.automate.api.infra_proxy.response.Cookbook - 51, // 55: chef.automate.api.infra_proxy.InfraProxy.GetCookbookFileContent:output_type -> chef.automate.api.infra_proxy.response.CookbookFileContent - 52, // 56: chef.automate.api.infra_proxy.InfraProxy.GetRoles:output_type -> chef.automate.api.infra_proxy.response.Roles - 53, // 57: chef.automate.api.infra_proxy.InfraProxy.GetRole:output_type -> chef.automate.api.infra_proxy.response.Role - 53, // 58: chef.automate.api.infra_proxy.InfraProxy.CreateRole:output_type -> chef.automate.api.infra_proxy.response.Role - 53, // 59: chef.automate.api.infra_proxy.InfraProxy.DeleteRole:output_type -> chef.automate.api.infra_proxy.response.Role - 53, // 60: chef.automate.api.infra_proxy.InfraProxy.UpdateRole:output_type -> chef.automate.api.infra_proxy.response.Role - 54, // 61: chef.automate.api.infra_proxy.InfraProxy.GetClients:output_type -> chef.automate.api.infra_proxy.response.Clients - 55, // 62: chef.automate.api.infra_proxy.InfraProxy.GetClient:output_type -> chef.automate.api.infra_proxy.response.Client - 56, // 63: chef.automate.api.infra_proxy.InfraProxy.GetDataBags:output_type -> chef.automate.api.infra_proxy.response.DataBags - 57, // 64: chef.automate.api.infra_proxy.InfraProxy.GetDataBagItem:output_type -> chef.automate.api.infra_proxy.response.DataBag - 58, // 65: chef.automate.api.infra_proxy.InfraProxy.CreateDataBag:output_type -> chef.automate.api.infra_proxy.response.CreateDataBag - 59, // 66: chef.automate.api.infra_proxy.InfraProxy.CreateDataBagItem:output_type -> chef.automate.api.infra_proxy.response.CreateDataBagItem - 57, // 67: chef.automate.api.infra_proxy.InfraProxy.DeleteDataBag:output_type -> chef.automate.api.infra_proxy.response.DataBag - 60, // 68: chef.automate.api.infra_proxy.InfraProxy.UpdateDataBagItem:output_type -> chef.automate.api.infra_proxy.response.UpdateDataBagItem - 61, // 69: chef.automate.api.infra_proxy.InfraProxy.GetEnvironments:output_type -> chef.automate.api.infra_proxy.response.Environments - 62, // 70: chef.automate.api.infra_proxy.InfraProxy.GetEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment - 62, // 71: chef.automate.api.infra_proxy.InfraProxy.CreateEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment - 62, // 72: chef.automate.api.infra_proxy.InfraProxy.DeleteEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment - 62, // 73: chef.automate.api.infra_proxy.InfraProxy.UpdateEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment - 63, // 74: chef.automate.api.infra_proxy.InfraProxy.GetEnvironmentRecipes:output_type -> chef.automate.api.infra_proxy.response.EnvironmentRecipesList - 64, // 75: chef.automate.api.infra_proxy.InfraProxy.GetNodes:output_type -> chef.automate.api.infra_proxy.response.Nodes - 65, // 76: chef.automate.api.infra_proxy.InfraProxy.GetAffectedNodes:output_type -> chef.automate.api.infra_proxy.response.AffectedNodes - 66, // 77: chef.automate.api.infra_proxy.InfraProxy.DeleteNode:output_type -> chef.automate.api.infra_proxy.response.DeleteNode - 67, // 78: chef.automate.api.infra_proxy.InfraProxy.UpdateNode:output_type -> chef.automate.api.infra_proxy.response.UpdateNode - 68, // 79: chef.automate.api.infra_proxy.InfraProxy.GetNode:output_type -> chef.automate.api.infra_proxy.response.Node - 69, // 80: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfiles:output_type -> chef.automate.api.infra_proxy.response.Policyfiles - 70, // 81: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfile:output_type -> chef.automate.api.infra_proxy.response.Policyfile - 41, // [41:82] is the sub-list for method output_type - 0, // [0:41] is the sub-list for method input_type + 21, // 22: chef.automate.api.infra_proxy.InfraProxy.CreateClient:input_type -> chef.automate.api.infra_proxy.request.CreateClient + 20, // 23: chef.automate.api.infra_proxy.InfraProxy.DeleteClient:input_type -> chef.automate.api.infra_proxy.request.Client + 22, // 24: chef.automate.api.infra_proxy.InfraProxy.ResetClientKey:input_type -> chef.automate.api.infra_proxy.request.ClientKey + 23, // 25: chef.automate.api.infra_proxy.InfraProxy.GetDataBags:input_type -> chef.automate.api.infra_proxy.request.DataBags + 24, // 26: chef.automate.api.infra_proxy.InfraProxy.GetDataBagItem:input_type -> chef.automate.api.infra_proxy.request.DataBag + 25, // 27: chef.automate.api.infra_proxy.InfraProxy.CreateDataBag:input_type -> chef.automate.api.infra_proxy.request.CreateDataBag + 26, // 28: chef.automate.api.infra_proxy.InfraProxy.CreateDataBagItem:input_type -> chef.automate.api.infra_proxy.request.CreateDataBagItem + 24, // 29: chef.automate.api.infra_proxy.InfraProxy.DeleteDataBag:input_type -> chef.automate.api.infra_proxy.request.DataBag + 27, // 30: chef.automate.api.infra_proxy.InfraProxy.UpdateDataBagItem:input_type -> chef.automate.api.infra_proxy.request.UpdateDataBagItem + 28, // 31: chef.automate.api.infra_proxy.InfraProxy.GetEnvironments:input_type -> chef.automate.api.infra_proxy.request.Environments + 29, // 32: chef.automate.api.infra_proxy.InfraProxy.GetEnvironment:input_type -> chef.automate.api.infra_proxy.request.Environment + 30, // 33: chef.automate.api.infra_proxy.InfraProxy.CreateEnvironment:input_type -> chef.automate.api.infra_proxy.request.CreateEnvironment + 29, // 34: chef.automate.api.infra_proxy.InfraProxy.DeleteEnvironment:input_type -> chef.automate.api.infra_proxy.request.Environment + 31, // 35: chef.automate.api.infra_proxy.InfraProxy.UpdateEnvironment:input_type -> chef.automate.api.infra_proxy.request.UpdateEnvironment + 29, // 36: chef.automate.api.infra_proxy.InfraProxy.GetEnvironmentRecipes:input_type -> chef.automate.api.infra_proxy.request.Environment + 32, // 37: chef.automate.api.infra_proxy.InfraProxy.GetNodes:input_type -> chef.automate.api.infra_proxy.request.Nodes + 33, // 38: chef.automate.api.infra_proxy.InfraProxy.GetAffectedNodes:input_type -> chef.automate.api.infra_proxy.request.AffectedNodes + 34, // 39: chef.automate.api.infra_proxy.InfraProxy.DeleteNode:input_type -> chef.automate.api.infra_proxy.request.DeleteNode + 35, // 40: chef.automate.api.infra_proxy.InfraProxy.UpdateNode:input_type -> chef.automate.api.infra_proxy.request.UpdateNode + 36, // 41: chef.automate.api.infra_proxy.InfraProxy.GetNode:input_type -> chef.automate.api.infra_proxy.request.Node + 37, // 42: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfiles:input_type -> chef.automate.api.infra_proxy.request.Policyfiles + 38, // 43: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfile:input_type -> chef.automate.api.infra_proxy.request.Policyfile + 39, // 44: chef.automate.api.infra_proxy.InfraProxy.GetServers:output_type -> chef.automate.api.infra_proxy.response.GetServers + 40, // 45: chef.automate.api.infra_proxy.InfraProxy.GetServer:output_type -> chef.automate.api.infra_proxy.response.GetServer + 41, // 46: chef.automate.api.infra_proxy.InfraProxy.CreateServer:output_type -> chef.automate.api.infra_proxy.response.CreateServer + 42, // 47: chef.automate.api.infra_proxy.InfraProxy.UpdateServer:output_type -> chef.automate.api.infra_proxy.response.UpdateServer + 43, // 48: chef.automate.api.infra_proxy.InfraProxy.DeleteServer:output_type -> chef.automate.api.infra_proxy.response.DeleteServer + 44, // 49: chef.automate.api.infra_proxy.InfraProxy.GetOrgs:output_type -> chef.automate.api.infra_proxy.response.GetOrgs + 45, // 50: chef.automate.api.infra_proxy.InfraProxy.GetOrg:output_type -> chef.automate.api.infra_proxy.response.GetOrg + 46, // 51: chef.automate.api.infra_proxy.InfraProxy.CreateOrg:output_type -> chef.automate.api.infra_proxy.response.CreateOrg + 47, // 52: chef.automate.api.infra_proxy.InfraProxy.UpdateOrg:output_type -> chef.automate.api.infra_proxy.response.UpdateOrg + 48, // 53: chef.automate.api.infra_proxy.InfraProxy.DeleteOrg:output_type -> chef.automate.api.infra_proxy.response.DeleteOrg + 49, // 54: chef.automate.api.infra_proxy.InfraProxy.ResetOrgAdminKey:output_type -> chef.automate.api.infra_proxy.response.ResetOrgAdminKey + 50, // 55: chef.automate.api.infra_proxy.InfraProxy.GetCookbooks:output_type -> chef.automate.api.infra_proxy.response.Cookbooks + 51, // 56: chef.automate.api.infra_proxy.InfraProxy.GetCookbookVersions:output_type -> chef.automate.api.infra_proxy.response.CookbookVersions + 52, // 57: chef.automate.api.infra_proxy.InfraProxy.GetCookbook:output_type -> chef.automate.api.infra_proxy.response.Cookbook + 53, // 58: chef.automate.api.infra_proxy.InfraProxy.GetCookbookFileContent:output_type -> chef.automate.api.infra_proxy.response.CookbookFileContent + 54, // 59: chef.automate.api.infra_proxy.InfraProxy.GetRoles:output_type -> chef.automate.api.infra_proxy.response.Roles + 55, // 60: chef.automate.api.infra_proxy.InfraProxy.GetRole:output_type -> chef.automate.api.infra_proxy.response.Role + 55, // 61: chef.automate.api.infra_proxy.InfraProxy.CreateRole:output_type -> chef.automate.api.infra_proxy.response.Role + 55, // 62: chef.automate.api.infra_proxy.InfraProxy.DeleteRole:output_type -> chef.automate.api.infra_proxy.response.Role + 55, // 63: chef.automate.api.infra_proxy.InfraProxy.UpdateRole:output_type -> chef.automate.api.infra_proxy.response.Role + 56, // 64: chef.automate.api.infra_proxy.InfraProxy.GetClients:output_type -> chef.automate.api.infra_proxy.response.Clients + 57, // 65: chef.automate.api.infra_proxy.InfraProxy.GetClient:output_type -> chef.automate.api.infra_proxy.response.Client + 58, // 66: chef.automate.api.infra_proxy.InfraProxy.CreateClient:output_type -> chef.automate.api.infra_proxy.response.CreateClient + 57, // 67: chef.automate.api.infra_proxy.InfraProxy.DeleteClient:output_type -> chef.automate.api.infra_proxy.response.Client + 59, // 68: chef.automate.api.infra_proxy.InfraProxy.ResetClientKey:output_type -> chef.automate.api.infra_proxy.response.ClientKey + 60, // 69: chef.automate.api.infra_proxy.InfraProxy.GetDataBags:output_type -> chef.automate.api.infra_proxy.response.DataBags + 61, // 70: chef.automate.api.infra_proxy.InfraProxy.GetDataBagItem:output_type -> chef.automate.api.infra_proxy.response.DataBag + 62, // 71: chef.automate.api.infra_proxy.InfraProxy.CreateDataBag:output_type -> chef.automate.api.infra_proxy.response.CreateDataBag + 63, // 72: chef.automate.api.infra_proxy.InfraProxy.CreateDataBagItem:output_type -> chef.automate.api.infra_proxy.response.CreateDataBagItem + 61, // 73: chef.automate.api.infra_proxy.InfraProxy.DeleteDataBag:output_type -> chef.automate.api.infra_proxy.response.DataBag + 64, // 74: chef.automate.api.infra_proxy.InfraProxy.UpdateDataBagItem:output_type -> chef.automate.api.infra_proxy.response.UpdateDataBagItem + 65, // 75: chef.automate.api.infra_proxy.InfraProxy.GetEnvironments:output_type -> chef.automate.api.infra_proxy.response.Environments + 66, // 76: chef.automate.api.infra_proxy.InfraProxy.GetEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment + 66, // 77: chef.automate.api.infra_proxy.InfraProxy.CreateEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment + 66, // 78: chef.automate.api.infra_proxy.InfraProxy.DeleteEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment + 66, // 79: chef.automate.api.infra_proxy.InfraProxy.UpdateEnvironment:output_type -> chef.automate.api.infra_proxy.response.Environment + 67, // 80: chef.automate.api.infra_proxy.InfraProxy.GetEnvironmentRecipes:output_type -> chef.automate.api.infra_proxy.response.EnvironmentRecipesList + 68, // 81: chef.automate.api.infra_proxy.InfraProxy.GetNodes:output_type -> chef.automate.api.infra_proxy.response.Nodes + 69, // 82: chef.automate.api.infra_proxy.InfraProxy.GetAffectedNodes:output_type -> chef.automate.api.infra_proxy.response.AffectedNodes + 70, // 83: chef.automate.api.infra_proxy.InfraProxy.DeleteNode:output_type -> chef.automate.api.infra_proxy.response.DeleteNode + 71, // 84: chef.automate.api.infra_proxy.InfraProxy.UpdateNode:output_type -> chef.automate.api.infra_proxy.response.UpdateNode + 72, // 85: chef.automate.api.infra_proxy.InfraProxy.GetNode:output_type -> chef.automate.api.infra_proxy.response.Node + 73, // 86: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfiles:output_type -> chef.automate.api.infra_proxy.response.Policyfiles + 74, // 87: chef.automate.api.infra_proxy.InfraProxy.GetPolicyfile:output_type -> chef.automate.api.infra_proxy.response.Policyfile + 44, // [44:88] is the sub-list for method output_type + 0, // [0:44] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name @@ -1021,6 +1083,9 @@ type InfraProxyClient interface { UpdateRole(ctx context.Context, in *request.UpdateRole, opts ...grpc.CallOption) (*response.Role, error) GetClients(ctx context.Context, in *request.Clients, opts ...grpc.CallOption) (*response.Clients, error) GetClient(ctx context.Context, in *request.Client, opts ...grpc.CallOption) (*response.Client, error) + CreateClient(ctx context.Context, in *request.CreateClient, opts ...grpc.CallOption) (*response.CreateClient, error) + DeleteClient(ctx context.Context, in *request.Client, opts ...grpc.CallOption) (*response.Client, error) + ResetClientKey(ctx context.Context, in *request.ClientKey, opts ...grpc.CallOption) (*response.ClientKey, error) GetDataBags(ctx context.Context, in *request.DataBags, opts ...grpc.CallOption) (*response.DataBags, error) GetDataBagItem(ctx context.Context, in *request.DataBag, opts ...grpc.CallOption) (*response.DataBag, error) CreateDataBag(ctx context.Context, in *request.CreateDataBag, opts ...grpc.CallOption) (*response.CreateDataBag, error) @@ -1248,6 +1313,33 @@ func (c *infraProxyClient) GetClient(ctx context.Context, in *request.Client, op return out, nil } +func (c *infraProxyClient) CreateClient(ctx context.Context, in *request.CreateClient, opts ...grpc.CallOption) (*response.CreateClient, error) { + out := new(response.CreateClient) + err := c.cc.Invoke(ctx, "/chef.automate.api.infra_proxy.InfraProxy/CreateClient", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *infraProxyClient) DeleteClient(ctx context.Context, in *request.Client, opts ...grpc.CallOption) (*response.Client, error) { + out := new(response.Client) + err := c.cc.Invoke(ctx, "/chef.automate.api.infra_proxy.InfraProxy/DeleteClient", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *infraProxyClient) ResetClientKey(ctx context.Context, in *request.ClientKey, opts ...grpc.CallOption) (*response.ClientKey, error) { + out := new(response.ClientKey) + err := c.cc.Invoke(ctx, "/chef.automate.api.infra_proxy.InfraProxy/ResetClientKey", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *infraProxyClient) GetDataBags(ctx context.Context, in *request.DataBags, opts ...grpc.CallOption) (*response.DataBags, error) { out := new(response.DataBags) err := c.cc.Invoke(ctx, "/chef.automate.api.infra_proxy.InfraProxy/GetDataBags", in, out, opts...) @@ -1443,6 +1535,9 @@ type InfraProxyServer interface { UpdateRole(context.Context, *request.UpdateRole) (*response.Role, error) GetClients(context.Context, *request.Clients) (*response.Clients, error) GetClient(context.Context, *request.Client) (*response.Client, error) + CreateClient(context.Context, *request.CreateClient) (*response.CreateClient, error) + DeleteClient(context.Context, *request.Client) (*response.Client, error) + ResetClientKey(context.Context, *request.ClientKey) (*response.ClientKey, error) GetDataBags(context.Context, *request.DataBags) (*response.DataBags, error) GetDataBagItem(context.Context, *request.DataBag) (*response.DataBag, error) CreateDataBag(context.Context, *request.CreateDataBag) (*response.CreateDataBag, error) @@ -1534,6 +1629,15 @@ func (*UnimplementedInfraProxyServer) GetClients(context.Context, *request.Clien func (*UnimplementedInfraProxyServer) GetClient(context.Context, *request.Client) (*response.Client, error) { return nil, status.Errorf(codes.Unimplemented, "method GetClient not implemented") } +func (*UnimplementedInfraProxyServer) CreateClient(context.Context, *request.CreateClient) (*response.CreateClient, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateClient not implemented") +} +func (*UnimplementedInfraProxyServer) DeleteClient(context.Context, *request.Client) (*response.Client, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteClient not implemented") +} +func (*UnimplementedInfraProxyServer) ResetClientKey(context.Context, *request.ClientKey) (*response.ClientKey, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResetClientKey not implemented") +} func (*UnimplementedInfraProxyServer) GetDataBags(context.Context, *request.DataBags) (*response.DataBags, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDataBags not implemented") } @@ -1992,6 +2096,60 @@ func _InfraProxy_GetClient_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _InfraProxy_CreateClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(request.CreateClient) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InfraProxyServer).CreateClient(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/chef.automate.api.infra_proxy.InfraProxy/CreateClient", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InfraProxyServer).CreateClient(ctx, req.(*request.CreateClient)) + } + return interceptor(ctx, in, info, handler) +} + +func _InfraProxy_DeleteClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(request.Client) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InfraProxyServer).DeleteClient(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/chef.automate.api.infra_proxy.InfraProxy/DeleteClient", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InfraProxyServer).DeleteClient(ctx, req.(*request.Client)) + } + return interceptor(ctx, in, info, handler) +} + +func _InfraProxy_ResetClientKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(request.ClientKey) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InfraProxyServer).ResetClientKey(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/chef.automate.api.infra_proxy.InfraProxy/ResetClientKey", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InfraProxyServer).ResetClientKey(ctx, req.(*request.ClientKey)) + } + return interceptor(ctx, in, info, handler) +} + func _InfraProxy_GetDataBags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(request.DataBags) if err := dec(in); err != nil { @@ -2426,6 +2584,18 @@ var _InfraProxy_serviceDesc = grpc.ServiceDesc{ MethodName: "GetClient", Handler: _InfraProxy_GetClient_Handler, }, + { + MethodName: "CreateClient", + Handler: _InfraProxy_CreateClient_Handler, + }, + { + MethodName: "DeleteClient", + Handler: _InfraProxy_DeleteClient_Handler, + }, + { + MethodName: "ResetClientKey", + Handler: _InfraProxy_ResetClientKey_Handler, + }, { MethodName: "GetDataBags", Handler: _InfraProxy_GetDataBags_Handler, diff --git a/api/external/infra_proxy/infra_proxy.pb.gw.go b/api/external/infra_proxy/infra_proxy.pb.gw.go index 248d0aaf0f8..3a9d076708d 100644 --- a/api/external/infra_proxy/infra_proxy.pb.gw.go +++ b/api/external/infra_proxy/infra_proxy.pb.gw.go @@ -1806,6 +1806,310 @@ func local_request_InfraProxy_GetClient_0(ctx context.Context, marshaler runtime } +func request_InfraProxy_CreateClient_0(ctx context.Context, marshaler runtime.Marshaler, client InfraProxyClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq request.CreateClient + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["server_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "server_id") + } + + protoReq.ServerId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "server_id", err) + } + + val, ok = pathParams["org_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org_id") + } + + protoReq.OrgId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) + } + + msg, err := client.CreateClient(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InfraProxy_CreateClient_0(ctx context.Context, marshaler runtime.Marshaler, server InfraProxyServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq request.CreateClient + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["server_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "server_id") + } + + protoReq.ServerId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "server_id", err) + } + + val, ok = pathParams["org_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org_id") + } + + protoReq.OrgId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) + } + + msg, err := server.CreateClient(ctx, &protoReq) + return msg, metadata, err + +} + +func request_InfraProxy_DeleteClient_0(ctx context.Context, marshaler runtime.Marshaler, client InfraProxyClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq request.Client + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["server_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "server_id") + } + + protoReq.ServerId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "server_id", err) + } + + val, ok = pathParams["org_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org_id") + } + + protoReq.OrgId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.DeleteClient(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InfraProxy_DeleteClient_0(ctx context.Context, marshaler runtime.Marshaler, server InfraProxyServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq request.Client + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["server_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "server_id") + } + + protoReq.ServerId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "server_id", err) + } + + val, ok = pathParams["org_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org_id") + } + + protoReq.OrgId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.DeleteClient(ctx, &protoReq) + return msg, metadata, err + +} + +func request_InfraProxy_ResetClientKey_0(ctx context.Context, marshaler runtime.Marshaler, client InfraProxyClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq request.ClientKey + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["server_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "server_id") + } + + protoReq.ServerId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "server_id", err) + } + + val, ok = pathParams["org_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org_id") + } + + protoReq.OrgId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.ResetClientKey(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InfraProxy_ResetClientKey_0(ctx context.Context, marshaler runtime.Marshaler, server InfraProxyServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq request.ClientKey + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["server_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "server_id") + } + + protoReq.ServerId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "server_id", err) + } + + val, ok = pathParams["org_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org_id") + } + + protoReq.OrgId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.ResetClientKey(ctx, &protoReq) + return msg, metadata, err + +} + var ( filter_InfraProxy_GetDataBags_0 = &utilities.DoubleArray{Encoding: map[string]int{"server_id": 0, "org_id": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} ) @@ -4215,6 +4519,66 @@ func RegisterInfraProxyHandlerServer(ctx context.Context, mux *runtime.ServeMux, }) + mux.Handle("POST", pattern_InfraProxy_CreateClient_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InfraProxy_CreateClient_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_InfraProxy_CreateClient_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_InfraProxy_DeleteClient_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InfraProxy_DeleteClient_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_InfraProxy_DeleteClient_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_InfraProxy_ResetClientKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InfraProxy_ResetClientKey_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_InfraProxy_ResetClientKey_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_InfraProxy_GetDataBags_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -5076,6 +5440,66 @@ func RegisterInfraProxyHandlerClient(ctx context.Context, mux *runtime.ServeMux, }) + mux.Handle("POST", pattern_InfraProxy_CreateClient_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InfraProxy_CreateClient_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_InfraProxy_CreateClient_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_InfraProxy_DeleteClient_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InfraProxy_DeleteClient_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_InfraProxy_DeleteClient_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_InfraProxy_ResetClientKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InfraProxy_ResetClientKey_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_InfraProxy_ResetClientKey_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_InfraProxy_GetDataBags_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -5504,6 +5928,12 @@ var ( pattern_InfraProxy_GetClient_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v0", "infra", "servers", "server_id", "orgs", "org_id", "clients", "name"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_InfraProxy_CreateClient_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7}, []string{"api", "v0", "infra", "servers", "server_id", "orgs", "org_id", "clients"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_InfraProxy_DeleteClient_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7, 1, 0, 4, 1, 5, 8}, []string{"api", "v0", "infra", "servers", "server_id", "orgs", "org_id", "clients", "name"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_InfraProxy_ResetClientKey_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7, 1, 0, 4, 1, 5, 8, 2, 9}, []string{"api", "v0", "infra", "servers", "server_id", "orgs", "org_id", "clients", "name", "reset"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_InfraProxy_GetDataBags_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7}, []string{"api", "v0", "infra", "servers", "server_id", "orgs", "org_id", "data_bags"}, "", runtime.AssumeColonVerbOpt(true))) pattern_InfraProxy_GetDataBagItem_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7, 1, 0, 4, 1, 5, 8, 1, 0, 4, 1, 5, 9}, []string{"api", "v0", "infra", "servers", "server_id", "orgs", "org_id", "data_bags", "name", "item"}, "", runtime.AssumeColonVerbOpt(true))) @@ -5588,6 +6018,12 @@ var ( forward_InfraProxy_GetClient_0 = runtime.ForwardResponseMessage + forward_InfraProxy_CreateClient_0 = runtime.ForwardResponseMessage + + forward_InfraProxy_DeleteClient_0 = runtime.ForwardResponseMessage + + forward_InfraProxy_ResetClientKey_0 = runtime.ForwardResponseMessage + forward_InfraProxy_GetDataBags_0 = runtime.ForwardResponseMessage forward_InfraProxy_GetDataBagItem_0 = runtime.ForwardResponseMessage diff --git a/api/external/infra_proxy/infra_proxy.pb.policy.go b/api/external/infra_proxy/infra_proxy.pb.policy.go index 763679ecb43..2398fe2c641 100644 --- a/api/external/infra_proxy/infra_proxy.pb.policy.go +++ b/api/external/infra_proxy/infra_proxy.pb.policy.go @@ -367,6 +367,59 @@ func init() { } return "" }) + policy.MapMethodTo("/chef.automate.api.infra_proxy.InfraProxy/CreateClient", "infra:servers:{server_id}:orgs:{org_id}:clients", "infra:infraServers:update", "POST", "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients", func(unexpandedResource string, input interface{}) string { + if m, ok := input.(*request.CreateClient); ok { + return policy.ExpandParameterizedResource(unexpandedResource, func(want string) string { + switch want { + case "org_id": + return m.OrgId + case "server_id": + return m.ServerId + case "name": + return m.Name + default: + return "" + } + }) + } + return "" + }) + policy.MapMethodTo("/chef.automate.api.infra_proxy.InfraProxy/DeleteClient", "infra:servers:{server_id}:orgs:{org_id}:clients", "infra:infraServers:update", "DELETE", "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}", func(unexpandedResource string, input interface{}) string { + if m, ok := input.(*request.Client); ok { + return policy.ExpandParameterizedResource(unexpandedResource, func(want string) string { + switch want { + case "org_id": + return m.OrgId + case "server_id": + return m.ServerId + case "name": + return m.Name + default: + return "" + } + }) + } + return "" + }) + policy.MapMethodTo("/chef.automate.api.infra_proxy.InfraProxy/ResetClientKey", "infra:servers:{server_id}:orgs:{org_id}:clients", "infra:infraServers:update", "PUT", "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}/reset", func(unexpandedResource string, input interface{}) string { + if m, ok := input.(*request.ClientKey); ok { + return policy.ExpandParameterizedResource(unexpandedResource, func(want string) string { + switch want { + case "org_id": + return m.OrgId + case "server_id": + return m.ServerId + case "name": + return m.Name + case "key": + return m.Key + default: + return "" + } + }) + } + return "" + }) policy.MapMethodTo("/chef.automate.api.infra_proxy.InfraProxy/GetDataBags", "infra:infraServers:{server_id}:orgs:{org_id}:data_bags", "infra:infraServers:get", "GET", "/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags", func(unexpandedResource string, input interface{}) string { if m, ok := input.(*request.DataBags); ok { return policy.ExpandParameterizedResource(unexpandedResource, func(want string) string { diff --git a/api/external/infra_proxy/infra_proxy.proto b/api/external/infra_proxy/infra_proxy.proto index 0d63cd6ebfa..b8bee793350 100644 --- a/api/external/infra_proxy/infra_proxy.proto +++ b/api/external/infra_proxy/infra_proxy.proto @@ -148,7 +148,24 @@ service InfraProxy { option (google.api.http).get = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}"; option (chef.automate.api.iam.policy).resource = "infra:servers:{server_id}:orgs:{org_id}:clients"; option (chef.automate.api.iam.policy).action = "infra:infraServers:get"; - } + }; + rpc CreateClient (infra_proxy.request.CreateClient) returns (infra_proxy.response.CreateClient) { + option (google.api.http).post = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients"; + option (google.api.http).body = "*"; + option (chef.automate.api.iam.policy).resource = "infra:servers:{server_id}:orgs:{org_id}:clients"; + option (chef.automate.api.iam.policy).action = "infra:infraServers:update"; + }; + rpc DeleteClient (infra_proxy.request.Client) returns (infra_proxy.response.Client) { + option (google.api.http).delete = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}"; + option (chef.automate.api.iam.policy).resource = "infra:servers:{server_id}:orgs:{org_id}:clients"; + option (chef.automate.api.iam.policy).action = "infra:infraServers:update"; + }; + rpc ResetClientKey (infra_proxy.request.ClientKey) returns (infra_proxy.response.ClientKey) { + option (google.api.http).put = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}/reset"; + option (google.api.http).body = "*"; + option (chef.automate.api.iam.policy).resource = "infra:servers:{server_id}:orgs:{org_id}:clients"; + option (chef.automate.api.iam.policy).action = "infra:infraServers:update"; + }; rpc GetDataBags (infra_proxy.request.DataBags) returns (infra_proxy.response.DataBags) { option (google.api.http).get = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags"; diff --git a/api/external/infra_proxy/infra_proxy.swagger.json b/api/external/infra_proxy/infra_proxy.swagger.json index 30e4fe8541c..e6f5728b793 100644 --- a/api/external/infra_proxy/infra_proxy.swagger.json +++ b/api/external/infra_proxy/infra_proxy.swagger.json @@ -487,6 +487,50 @@ "tags": [ "InfraProxy" ] + }, + "post": { + "operationId": "InfraProxy_CreateClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.CreateClient" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.request.CreateClient" + } + } + ], + "tags": [ + "InfraProxy" + ] } }, "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}": { @@ -532,6 +576,102 @@ "tags": [ "InfraProxy" ] + }, + "delete": { + "operationId": "InfraProxy_DeleteClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.Client" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "name", + "description": "Client name.", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "InfraProxy" + ] + } + }, + "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}/reset": { + "put": { + "operationId": "InfraProxy_ResetClientKey", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientKey" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "name", + "description": "Client name.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.request.ClientKey" + } + } + ], + "tags": [ + "InfraProxy" + ] } }, "/api/v0/infra/servers/{server_id}/orgs/{org_id}/cookbooks": { @@ -1788,6 +1928,54 @@ } }, "definitions": { + "chef.automate.api.infra_proxy.request.ClientKey": { + "type": "object", + "properties": { + "org_id": { + "type": "string", + "description": "Chef organization ID." + }, + "server_id": { + "type": "string", + "description": "Chef Infra Server ID." + }, + "name": { + "type": "string", + "description": "Client name." + }, + "key": { + "type": "string", + "description": "Client key name." + } + } + }, + "chef.automate.api.infra_proxy.request.CreateClient": { + "type": "object", + "properties": { + "org_id": { + "type": "string", + "description": "Chef organization ID." + }, + "server_id": { + "type": "string", + "description": "Chef Infra Server ID." + }, + "name": { + "type": "string", + "description": "Client name." + }, + "validator": { + "type": "boolean", + "format": "boolean", + "description": "Boolean indicates client type is validator or not." + }, + "create_key": { + "type": "boolean", + "format": "boolean", + "description": "Boolean indicates whether it's required to create a key or not." + } + } + }, "chef.automate.api.infra_proxy.request.CreateDataBag": { "type": "object", "properties": { @@ -2243,6 +2431,48 @@ "chef_type": { "type": "string", "description": "Chef object type." + }, + "client_key": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientAccessKey", + "description": "Client key detail." + } + } + }, + "chef.automate.api.infra_proxy.response.ClientAccessKey": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client key name." + }, + "public_key": { + "type": "string", + "description": "Client public key." + }, + "expiration_date": { + "type": "string", + "description": "Client key expiration date string." + } + } + }, + "chef.automate.api.infra_proxy.response.ClientKey": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client key name." + }, + "public_key": { + "type": "string", + "description": "Client public key." + }, + "expiration_date": { + "type": "string", + "description": "Client key expiration date string." + }, + "private_key": { + "type": "string", + "description": "Client private key." } } }, @@ -2509,6 +2739,19 @@ } } }, + "chef.automate.api.infra_proxy.response.CreateClient": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client name." + }, + "client_key": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientKey", + "description": "Client key detail." + } + } + }, "chef.automate.api.infra_proxy.response.CreateDataBag": { "type": "object", "properties": { diff --git a/api/external/infra_proxy/request/clients.pb.go b/api/external/infra_proxy/request/clients.pb.go index daaff0b22f2..33ba6346e00 100644 --- a/api/external/infra_proxy/request/clients.pb.go +++ b/api/external/infra_proxy/request/clients.pb.go @@ -148,6 +148,165 @@ func (x *Client) GetName() string { return "" } +type CreateClient struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Chef organization ID. + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + // Chef Infra Server ID. + ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` + // Client name. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // Boolean indicates client type is validator or not. + Validator bool `protobuf:"varint,4,opt,name=validator,proto3" json:"validator,omitempty"` + // Boolean indicates whether it's required to create a key or not. + CreateKey bool `protobuf:"varint,5,opt,name=create_key,json=createKey,proto3" json:"create_key,omitempty"` +} + +func (x *CreateClient) Reset() { + *x = CreateClient{} + if protoimpl.UnsafeEnabled { + mi := &file_external_infra_proxy_request_clients_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateClient) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateClient) ProtoMessage() {} + +func (x *CreateClient) ProtoReflect() protoreflect.Message { + mi := &file_external_infra_proxy_request_clients_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateClient.ProtoReflect.Descriptor instead. +func (*CreateClient) Descriptor() ([]byte, []int) { + return file_external_infra_proxy_request_clients_proto_rawDescGZIP(), []int{2} +} + +func (x *CreateClient) GetOrgId() string { + if x != nil { + return x.OrgId + } + return "" +} + +func (x *CreateClient) GetServerId() string { + if x != nil { + return x.ServerId + } + return "" +} + +func (x *CreateClient) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateClient) GetValidator() bool { + if x != nil { + return x.Validator + } + return false +} + +func (x *CreateClient) GetCreateKey() bool { + if x != nil { + return x.CreateKey + } + return false +} + +type ClientKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Chef organization ID. + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + // Chef Infra Server ID. + ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` + // Client name. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // Client key name. + Key string `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *ClientKey) Reset() { + *x = ClientKey{} + if protoimpl.UnsafeEnabled { + mi := &file_external_infra_proxy_request_clients_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientKey) ProtoMessage() {} + +func (x *ClientKey) ProtoReflect() protoreflect.Message { + mi := &file_external_infra_proxy_request_clients_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientKey.ProtoReflect.Descriptor instead. +func (*ClientKey) Descriptor() ([]byte, []int) { + return file_external_infra_proxy_request_clients_proto_rawDescGZIP(), []int{3} +} + +func (x *ClientKey) GetOrgId() string { + if x != nil { + return x.OrgId + } + return "" +} + +func (x *ClientKey) GetServerId() string { + if x != nil { + return x.ServerId + } + return "" +} + +func (x *ClientKey) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientKey) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + var File_external_infra_proxy_request_clients_proto protoreflect.FileDescriptor var file_external_infra_proxy_request_clients_proto_rawDesc = []byte{ @@ -165,11 +324,27 @@ var file_external_infra_proxy_request_clients_proto_rawDesc = []byte{ 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, - 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x65, 0x0a, 0x09, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -184,10 +359,12 @@ func file_external_infra_proxy_request_clients_proto_rawDescGZIP() []byte { return file_external_infra_proxy_request_clients_proto_rawDescData } -var file_external_infra_proxy_request_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_external_infra_proxy_request_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_external_infra_proxy_request_clients_proto_goTypes = []interface{}{ - (*Clients)(nil), // 0: chef.automate.api.infra_proxy.request.Clients - (*Client)(nil), // 1: chef.automate.api.infra_proxy.request.Client + (*Clients)(nil), // 0: chef.automate.api.infra_proxy.request.Clients + (*Client)(nil), // 1: chef.automate.api.infra_proxy.request.Client + (*CreateClient)(nil), // 2: chef.automate.api.infra_proxy.request.CreateClient + (*ClientKey)(nil), // 3: chef.automate.api.infra_proxy.request.ClientKey } var file_external_infra_proxy_request_clients_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type @@ -227,6 +404,30 @@ func file_external_infra_proxy_request_clients_proto_init() { return nil } } + file_external_infra_proxy_request_clients_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateClient); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_external_infra_proxy_request_clients_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -234,7 +435,7 @@ func file_external_infra_proxy_request_clients_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_external_infra_proxy_request_clients_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 4, NumExtensions: 0, NumServices: 0, }, diff --git a/api/external/infra_proxy/request/clients.proto b/api/external/infra_proxy/request/clients.proto index 481f0986f14..fe94436a11f 100644 --- a/api/external/infra_proxy/request/clients.proto +++ b/api/external/infra_proxy/request/clients.proto @@ -18,3 +18,27 @@ message Client { // Client name. string name = 3; } + +message CreateClient { + // Chef organization ID. + string org_id = 1; + // Chef Infra Server ID. + string server_id = 2; + // Client name. + string name = 3; + // Boolean indicates client type is validator or not. + bool validator = 4; + // Boolean indicates whether it's required to create a key or not. + bool create_key = 5; +} + +message ClientKey { + // Chef organization ID. + string org_id = 1; + // Chef Infra Server ID. + string server_id = 2; + // Client name. + string name = 3; + // Client key name. + string key = 4; +} diff --git a/api/external/infra_proxy/response/clients.pb.go b/api/external/infra_proxy/response/clients.pb.go index f31899f3e22..dd4c9900d62 100644 --- a/api/external/infra_proxy/response/clients.pb.go +++ b/api/external/infra_proxy/response/clients.pb.go @@ -138,6 +138,8 @@ type Client struct { JsonClass string `protobuf:"bytes,5,opt,name=json_class,json=jsonClass,proto3" json:"json_class,omitempty"` // Chef object type. ChefType string `protobuf:"bytes,6,opt,name=chef_type,json=chefType,proto3" json:"chef_type,omitempty"` + // Client key detail. + ClientKey *ClientAccessKey `protobuf:"bytes,7,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"` } func (x *Client) Reset() { @@ -214,6 +216,211 @@ func (x *Client) GetChefType() string { return "" } +func (x *Client) GetClientKey() *ClientAccessKey { + if x != nil { + return x.ClientKey + } + return nil +} + +type CreateClient struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Client name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Client key detail. + ClientKey *ClientKey `protobuf:"bytes,2,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"` +} + +func (x *CreateClient) Reset() { + *x = CreateClient{} + if protoimpl.UnsafeEnabled { + mi := &file_external_infra_proxy_response_clients_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateClient) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateClient) ProtoMessage() {} + +func (x *CreateClient) ProtoReflect() protoreflect.Message { + mi := &file_external_infra_proxy_response_clients_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateClient.ProtoReflect.Descriptor instead. +func (*CreateClient) Descriptor() ([]byte, []int) { + return file_external_infra_proxy_response_clients_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateClient) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateClient) GetClientKey() *ClientKey { + if x != nil { + return x.ClientKey + } + return nil +} + +type ClientKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Client key name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Client public key. + PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + // Client key expiration date string. + ExpirationDate string `protobuf:"bytes,3,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` + // Client private key. + PrivateKey string `protobuf:"bytes,4,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` +} + +func (x *ClientKey) Reset() { + *x = ClientKey{} + if protoimpl.UnsafeEnabled { + mi := &file_external_infra_proxy_response_clients_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientKey) ProtoMessage() {} + +func (x *ClientKey) ProtoReflect() protoreflect.Message { + mi := &file_external_infra_proxy_response_clients_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientKey.ProtoReflect.Descriptor instead. +func (*ClientKey) Descriptor() ([]byte, []int) { + return file_external_infra_proxy_response_clients_proto_rawDescGZIP(), []int{4} +} + +func (x *ClientKey) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientKey) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *ClientKey) GetExpirationDate() string { + if x != nil { + return x.ExpirationDate + } + return "" +} + +func (x *ClientKey) GetPrivateKey() string { + if x != nil { + return x.PrivateKey + } + return "" +} + +type ClientAccessKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Client key name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Client public key. + PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + // Client key expiration date string. + ExpirationDate string `protobuf:"bytes,3,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` +} + +func (x *ClientAccessKey) Reset() { + *x = ClientAccessKey{} + if protoimpl.UnsafeEnabled { + mi := &file_external_infra_proxy_response_clients_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientAccessKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientAccessKey) ProtoMessage() {} + +func (x *ClientAccessKey) ProtoReflect() protoreflect.Message { + mi := &file_external_infra_proxy_response_clients_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientAccessKey.ProtoReflect.Descriptor instead. +func (*ClientAccessKey) Descriptor() ([]byte, []int) { + return file_external_infra_proxy_response_clients_proto_rawDescGZIP(), []int{5} +} + +func (x *ClientAccessKey) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientAccessKey) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *ClientAccessKey) GetExpirationDate() string { + if x != nil { + return x.ExpirationDate + } + return "" +} + var File_external_infra_proxy_response_clients_proto protoreflect.FileDescriptor var file_external_infra_proxy_response_clients_proto_rawDesc = []byte{ @@ -230,7 +437,7 @@ var file_external_infra_proxy_response_clients_proto_rawDesc = []byte{ 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x24, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x06, 0x43, 0x6c, 0x69, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8a, 0x02, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, @@ -241,12 +448,40 @@ var file_external_infra_proxy_response_clients_proto_rawDesc = []byte{ 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x42, 0x3c, 0x5a, - 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, - 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x74, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, + 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x09, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x6d, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x42, 0x3c, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -261,19 +496,24 @@ func file_external_infra_proxy_response_clients_proto_rawDescGZIP() []byte { return file_external_infra_proxy_response_clients_proto_rawDescData } -var file_external_infra_proxy_response_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_external_infra_proxy_response_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_external_infra_proxy_response_clients_proto_goTypes = []interface{}{ - (*Clients)(nil), // 0: chef.automate.api.infra_proxy.response.Clients - (*ClientListItem)(nil), // 1: chef.automate.api.infra_proxy.response.ClientListItem - (*Client)(nil), // 2: chef.automate.api.infra_proxy.response.Client + (*Clients)(nil), // 0: chef.automate.api.infra_proxy.response.Clients + (*ClientListItem)(nil), // 1: chef.automate.api.infra_proxy.response.ClientListItem + (*Client)(nil), // 2: chef.automate.api.infra_proxy.response.Client + (*CreateClient)(nil), // 3: chef.automate.api.infra_proxy.response.CreateClient + (*ClientKey)(nil), // 4: chef.automate.api.infra_proxy.response.ClientKey + (*ClientAccessKey)(nil), // 5: chef.automate.api.infra_proxy.response.ClientAccessKey } var file_external_infra_proxy_response_clients_proto_depIdxs = []int32{ 1, // 0: chef.automate.api.infra_proxy.response.Clients.clients:type_name -> chef.automate.api.infra_proxy.response.ClientListItem - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 5, // 1: chef.automate.api.infra_proxy.response.Client.client_key:type_name -> chef.automate.api.infra_proxy.response.ClientAccessKey + 4, // 2: chef.automate.api.infra_proxy.response.CreateClient.client_key:type_name -> chef.automate.api.infra_proxy.response.ClientKey + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_external_infra_proxy_response_clients_proto_init() } @@ -318,6 +558,42 @@ func file_external_infra_proxy_response_clients_proto_init() { return nil } } + file_external_infra_proxy_response_clients_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateClient); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_external_infra_proxy_response_clients_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_external_infra_proxy_response_clients_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientAccessKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -325,7 +601,7 @@ func file_external_infra_proxy_response_clients_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_external_infra_proxy_response_clients_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 6, NumExtensions: 0, NumServices: 0, }, diff --git a/api/external/infra_proxy/response/clients.proto b/api/external/infra_proxy/response/clients.proto index 3d687614f3b..5525d405acd 100644 --- a/api/external/infra_proxy/response/clients.proto +++ b/api/external/infra_proxy/response/clients.proto @@ -4,26 +4,55 @@ package chef.automate.api.infra_proxy.response; option go_package = "github.com/chef/automate/api/external/infra_proxy/response"; message Clients { - // Client list. + // Client list. repeated ClientListItem clients = 1; } message ClientListItem { - // Client name. + // Client name. string name = 1; } message Client { - // Client name. - string name = 1; - // Client name return by Chef Infra Server API. - string client_name = 2; - // Chef organization name. - string org_name = 3; - // Boolean indicates client type is validator or not. - bool validator = 4; - // Client JSON class. - string json_class = 5; - // Chef object type. - string chef_type = 6; + // Client name. + string name = 1; + // Client name return by Chef Infra Server API. + string client_name = 2; + // Chef organization name. + string org_name = 3; + // Boolean indicates client type is validator or not. + bool validator = 4; + // Client JSON class. + string json_class = 5; + // Chef object type. + string chef_type = 6; + // Client key detail. + ClientAccessKey client_key = 7; +} + +message CreateClient { + // Client name. + string name = 1; + // Client key detail. + ClientKey client_key = 2; +} + +message ClientKey { + // Client key name. + string name = 1; + // Client public key. + string public_key = 2; + // Client key expiration date string. + string expiration_date = 3; + // Client private key. + string private_key = 4; +} + +message ClientAccessKey { + // Client key name. + string name = 1; + // Client public key. + string public_key = 2; + // Client key expiration date string. + string expiration_date = 3; } diff --git a/api/interservice/infra_proxy/request/clients.pb.go b/api/interservice/infra_proxy/request/clients.pb.go index e8a1ce65338..7a287f91200 100644 --- a/api/interservice/infra_proxy/request/clients.pb.go +++ b/api/interservice/infra_proxy/request/clients.pb.go @@ -148,6 +148,165 @@ func (x *Client) GetName() string { return "" } +type CreateClient struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Chef organization ID. + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty" toml:"org_id,omitempty" mapstructure:"org_id,omitempty"` + // Chef Infra Server ID. + ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty" toml:"server_id,omitempty" mapstructure:"server_id,omitempty"` + // Client name. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"` + // Boolean indicates client type is validator or not. + Validator bool `protobuf:"varint,4,opt,name=validator,proto3" json:"validator,omitempty" toml:"validator,omitempty" mapstructure:"validator,omitempty"` + // Boolean indicates whether it's required to create a key or not. + CreateKey bool `protobuf:"varint,5,opt,name=create_key,json=createKey,proto3" json:"create_key,omitempty" toml:"create_key,omitempty" mapstructure:"create_key,omitempty"` +} + +func (x *CreateClient) Reset() { + *x = CreateClient{} + if protoimpl.UnsafeEnabled { + mi := &file_interservice_infra_proxy_request_clients_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateClient) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateClient) ProtoMessage() {} + +func (x *CreateClient) ProtoReflect() protoreflect.Message { + mi := &file_interservice_infra_proxy_request_clients_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateClient.ProtoReflect.Descriptor instead. +func (*CreateClient) Descriptor() ([]byte, []int) { + return file_interservice_infra_proxy_request_clients_proto_rawDescGZIP(), []int{2} +} + +func (x *CreateClient) GetOrgId() string { + if x != nil { + return x.OrgId + } + return "" +} + +func (x *CreateClient) GetServerId() string { + if x != nil { + return x.ServerId + } + return "" +} + +func (x *CreateClient) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateClient) GetValidator() bool { + if x != nil { + return x.Validator + } + return false +} + +func (x *CreateClient) GetCreateKey() bool { + if x != nil { + return x.CreateKey + } + return false +} + +type ClientKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Chef organization ID. + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty" toml:"org_id,omitempty" mapstructure:"org_id,omitempty"` + // Chef Infra Server ID. + ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty" toml:"server_id,omitempty" mapstructure:"server_id,omitempty"` + // Client name. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"` + // Client key name. + Key string `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty" toml:"key,omitempty" mapstructure:"key,omitempty"` +} + +func (x *ClientKey) Reset() { + *x = ClientKey{} + if protoimpl.UnsafeEnabled { + mi := &file_interservice_infra_proxy_request_clients_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientKey) ProtoMessage() {} + +func (x *ClientKey) ProtoReflect() protoreflect.Message { + mi := &file_interservice_infra_proxy_request_clients_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientKey.ProtoReflect.Descriptor instead. +func (*ClientKey) Descriptor() ([]byte, []int) { + return file_interservice_infra_proxy_request_clients_proto_rawDescGZIP(), []int{3} +} + +func (x *ClientKey) GetOrgId() string { + if x != nil { + return x.OrgId + } + return "" +} + +func (x *ClientKey) GetServerId() string { + if x != nil { + return x.ServerId + } + return "" +} + +func (x *ClientKey) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientKey) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + var File_interservice_infra_proxy_request_clients_proto protoreflect.FileDescriptor var file_interservice_infra_proxy_request_clients_proto_rawDesc = []byte{ @@ -165,12 +324,28 @@ var file_interservice_infra_proxy_request_clients_proto_rawDesc = []byte{ 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x3f, 0x5a, 0x3d, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0c, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, + 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, + 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x22, 0x65, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x15, + 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -185,10 +360,12 @@ func file_interservice_infra_proxy_request_clients_proto_rawDescGZIP() []byte { return file_interservice_infra_proxy_request_clients_proto_rawDescData } -var file_interservice_infra_proxy_request_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_interservice_infra_proxy_request_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_interservice_infra_proxy_request_clients_proto_goTypes = []interface{}{ - (*Clients)(nil), // 0: chef.automate.domain.infra_proxy.request.Clients - (*Client)(nil), // 1: chef.automate.domain.infra_proxy.request.Client + (*Clients)(nil), // 0: chef.automate.domain.infra_proxy.request.Clients + (*Client)(nil), // 1: chef.automate.domain.infra_proxy.request.Client + (*CreateClient)(nil), // 2: chef.automate.domain.infra_proxy.request.CreateClient + (*ClientKey)(nil), // 3: chef.automate.domain.infra_proxy.request.ClientKey } var file_interservice_infra_proxy_request_clients_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type @@ -228,6 +405,30 @@ func file_interservice_infra_proxy_request_clients_proto_init() { return nil } } + file_interservice_infra_proxy_request_clients_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateClient); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_interservice_infra_proxy_request_clients_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -235,7 +436,7 @@ func file_interservice_infra_proxy_request_clients_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_interservice_infra_proxy_request_clients_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 4, NumExtensions: 0, NumServices: 0, }, diff --git a/api/interservice/infra_proxy/request/clients.proto b/api/interservice/infra_proxy/request/clients.proto index 337bbe39e35..a587e0f631d 100644 --- a/api/interservice/infra_proxy/request/clients.proto +++ b/api/interservice/infra_proxy/request/clients.proto @@ -18,3 +18,27 @@ message Client { // Client name. string name = 3; } + +message CreateClient { + // Chef organization ID. + string org_id = 1; + // Chef Infra Server ID. + string server_id = 2; + // Client name. + string name = 3; + // Boolean indicates client type is validator or not. + bool validator = 4; + // Boolean indicates whether it's required to create a key or not. + bool create_key = 5; +} + +message ClientKey { + // Chef organization ID. + string org_id = 1; + // Chef Infra Server ID. + string server_id = 2; + // Client name. + string name = 3; + // Client key name. + string key = 4; +} diff --git a/api/interservice/infra_proxy/response/clients.pb.go b/api/interservice/infra_proxy/response/clients.pb.go index 731bf53213f..5546bba2f03 100644 --- a/api/interservice/infra_proxy/response/clients.pb.go +++ b/api/interservice/infra_proxy/response/clients.pb.go @@ -138,6 +138,8 @@ type Client struct { JsonClass string `protobuf:"bytes,5,opt,name=json_class,json=jsonClass,proto3" json:"json_class,omitempty" toml:"json_class,omitempty" mapstructure:"json_class,omitempty"` // Chef object type. ChefType string `protobuf:"bytes,6,opt,name=chef_type,json=chefType,proto3" json:"chef_type,omitempty" toml:"chef_type,omitempty" mapstructure:"chef_type,omitempty"` + // Client key detail. + ClientKey *ClientAccessKey `protobuf:"bytes,7,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty" toml:"client_key,omitempty" mapstructure:"client_key,omitempty"` } func (x *Client) Reset() { @@ -214,6 +216,211 @@ func (x *Client) GetChefType() string { return "" } +func (x *Client) GetClientKey() *ClientAccessKey { + if x != nil { + return x.ClientKey + } + return nil +} + +type CreateClient struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Client name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"` + // Client key detail. + ClientKey *ClientKey `protobuf:"bytes,2,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty" toml:"client_key,omitempty" mapstructure:"client_key,omitempty"` +} + +func (x *CreateClient) Reset() { + *x = CreateClient{} + if protoimpl.UnsafeEnabled { + mi := &file_interservice_infra_proxy_response_clients_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateClient) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateClient) ProtoMessage() {} + +func (x *CreateClient) ProtoReflect() protoreflect.Message { + mi := &file_interservice_infra_proxy_response_clients_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateClient.ProtoReflect.Descriptor instead. +func (*CreateClient) Descriptor() ([]byte, []int) { + return file_interservice_infra_proxy_response_clients_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateClient) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateClient) GetClientKey() *ClientKey { + if x != nil { + return x.ClientKey + } + return nil +} + +type ClientKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Client key name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"` + // Client public key. + PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty" toml:"public_key,omitempty" mapstructure:"public_key,omitempty"` + // Client key expiration date string. + ExpirationDate string `protobuf:"bytes,3,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty" toml:"expiration_date,omitempty" mapstructure:"expiration_date,omitempty"` + // Client private key. + PrivateKey string `protobuf:"bytes,4,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty" toml:"private_key,omitempty" mapstructure:"private_key,omitempty"` +} + +func (x *ClientKey) Reset() { + *x = ClientKey{} + if protoimpl.UnsafeEnabled { + mi := &file_interservice_infra_proxy_response_clients_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientKey) ProtoMessage() {} + +func (x *ClientKey) ProtoReflect() protoreflect.Message { + mi := &file_interservice_infra_proxy_response_clients_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientKey.ProtoReflect.Descriptor instead. +func (*ClientKey) Descriptor() ([]byte, []int) { + return file_interservice_infra_proxy_response_clients_proto_rawDescGZIP(), []int{4} +} + +func (x *ClientKey) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientKey) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *ClientKey) GetExpirationDate() string { + if x != nil { + return x.ExpirationDate + } + return "" +} + +func (x *ClientKey) GetPrivateKey() string { + if x != nil { + return x.PrivateKey + } + return "" +} + +type ClientAccessKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Client key name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"` + // Client public key. + PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty" toml:"public_key,omitempty" mapstructure:"public_key,omitempty"` + // Client key expiration date string. + ExpirationDate string `protobuf:"bytes,3,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty" toml:"expiration_date,omitempty" mapstructure:"expiration_date,omitempty"` +} + +func (x *ClientAccessKey) Reset() { + *x = ClientAccessKey{} + if protoimpl.UnsafeEnabled { + mi := &file_interservice_infra_proxy_response_clients_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientAccessKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientAccessKey) ProtoMessage() {} + +func (x *ClientAccessKey) ProtoReflect() protoreflect.Message { + mi := &file_interservice_infra_proxy_response_clients_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientAccessKey.ProtoReflect.Descriptor instead. +func (*ClientAccessKey) Descriptor() ([]byte, []int) { + return file_interservice_infra_proxy_response_clients_proto_rawDescGZIP(), []int{5} +} + +func (x *ClientAccessKey) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientAccessKey) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *ClientAccessKey) GetExpirationDate() string { + if x != nil { + return x.ExpirationDate + } + return "" +} + var File_interservice_infra_proxy_response_clients_proto protoreflect.FileDescriptor var file_interservice_infra_proxy_response_clients_proto_rawDesc = []byte{ @@ -231,7 +438,7 @@ var file_interservice_infra_proxy_response_clients_proto_rawDesc = []byte{ 0x74, 0x65, 0x6d, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x24, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, + 0x6d, 0x65, 0x22, 0x8d, 0x02, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, @@ -242,12 +449,40 @@ var file_interservice_infra_proxy_response_clients_proto_rawDesc = []byte{ 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x42, 0x40, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, + 0x65, 0x79, 0x22, 0x77, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, + 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x09, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x6d, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x42, 0x40, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -262,19 +497,24 @@ func file_interservice_infra_proxy_response_clients_proto_rawDescGZIP() []byte { return file_interservice_infra_proxy_response_clients_proto_rawDescData } -var file_interservice_infra_proxy_response_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_interservice_infra_proxy_response_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_interservice_infra_proxy_response_clients_proto_goTypes = []interface{}{ - (*Clients)(nil), // 0: chef.automate.domain.infra_proxy.response.Clients - (*ClientListItem)(nil), // 1: chef.automate.domain.infra_proxy.response.ClientListItem - (*Client)(nil), // 2: chef.automate.domain.infra_proxy.response.Client + (*Clients)(nil), // 0: chef.automate.domain.infra_proxy.response.Clients + (*ClientListItem)(nil), // 1: chef.automate.domain.infra_proxy.response.ClientListItem + (*Client)(nil), // 2: chef.automate.domain.infra_proxy.response.Client + (*CreateClient)(nil), // 3: chef.automate.domain.infra_proxy.response.CreateClient + (*ClientKey)(nil), // 4: chef.automate.domain.infra_proxy.response.ClientKey + (*ClientAccessKey)(nil), // 5: chef.automate.domain.infra_proxy.response.ClientAccessKey } var file_interservice_infra_proxy_response_clients_proto_depIdxs = []int32{ 1, // 0: chef.automate.domain.infra_proxy.response.Clients.clients:type_name -> chef.automate.domain.infra_proxy.response.ClientListItem - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 5, // 1: chef.automate.domain.infra_proxy.response.Client.client_key:type_name -> chef.automate.domain.infra_proxy.response.ClientAccessKey + 4, // 2: chef.automate.domain.infra_proxy.response.CreateClient.client_key:type_name -> chef.automate.domain.infra_proxy.response.ClientKey + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_interservice_infra_proxy_response_clients_proto_init() } @@ -319,6 +559,42 @@ func file_interservice_infra_proxy_response_clients_proto_init() { return nil } } + file_interservice_infra_proxy_response_clients_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateClient); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_interservice_infra_proxy_response_clients_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_interservice_infra_proxy_response_clients_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientAccessKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -326,7 +602,7 @@ func file_interservice_infra_proxy_response_clients_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_interservice_infra_proxy_response_clients_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 6, NumExtensions: 0, NumServices: 0, }, diff --git a/api/interservice/infra_proxy/response/clients.proto b/api/interservice/infra_proxy/response/clients.proto index 71326c84970..106677747af 100644 --- a/api/interservice/infra_proxy/response/clients.proto +++ b/api/interservice/infra_proxy/response/clients.proto @@ -4,26 +4,55 @@ package chef.automate.domain.infra_proxy.response; option go_package = "github.com/chef/automate/api/interservice/infra_proxy/response"; message Clients { - // Client list. + // Client list. repeated ClientListItem clients = 1; } message ClientListItem { - // Client name. + // Client name. string name = 1; } message Client { - // Client name. - string name = 1; - // Client name return by Chef Infra Server API. - string client_name = 2; - // Chef organization name. - string org_name = 3; - // Boolean indicates client type is validator or not. - bool validator = 4; - // Client JSON class. - string json_class = 5; - // Chef object type. - string chef_type = 6; + // Client name. + string name = 1; + // Client name return by Chef Infra Server API. + string client_name = 2; + // Chef organization name. + string org_name = 3; + // Boolean indicates client type is validator or not. + bool validator = 4; + // Client JSON class. + string json_class = 5; + // Chef object type. + string chef_type = 6; + // Client key detail. + ClientAccessKey client_key = 7; +} + +message CreateClient { + // Client name. + string name = 1; + // Client key detail. + ClientKey client_key = 2; +} + +message ClientKey { + // Client key name. + string name = 1; + // Client public key. + string public_key = 2; + // Client key expiration date string. + string expiration_date = 3; + // Client private key. + string private_key = 4; +} + +message ClientAccessKey { + // Client key name. + string name = 1; + // Client public key. + string public_key = 2; + // Client key expiration date string. + string expiration_date = 3; } diff --git a/api/interservice/infra_proxy/service/infra_proxy.pb.go b/api/interservice/infra_proxy/service/infra_proxy.pb.go index ae12ae023bb..c05e73fcaac 100644 --- a/api/interservice/infra_proxy/service/infra_proxy.pb.go +++ b/api/interservice/infra_proxy/service/infra_proxy.pb.go @@ -94,7 +94,7 @@ var file_interservice_infra_proxy_service_infra_proxy_proto_rawDesc = []byte{ 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x32, 0x8d, 0x29, 0x0a, 0x11, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, + 0x6f, 0x32, 0x87, 0x2c, 0x0a, 0x11, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, @@ -266,168 +266,192 @@ var file_interservice_infra_proxy_service_infra_proxy_proto_rawDesc = []byte{ 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0b, - 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x1a, - 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x42, 0x61, 0x67, 0x73, 0x22, 0x00, 0x12, 0x79, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x32, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, - 0x00, 0x12, 0x84, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x42, 0x61, 0x67, 0x12, 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x38, 0x2e, 0x63, - 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x3b, + 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, + 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x00, + 0x12, 0x75, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x12, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, + 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x65, 0x74, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x3c, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0d, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, 0x31, 0x2e, 0x63, - 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, - 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x42, 0x61, 0x67, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x3b, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x3c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, - 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x63, - 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x00, 0x12, - 0x81, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, - 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4b, 0x65, 0x79, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x61, 0x67, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x1a, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, - 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x73, 0x22, 0x00, + 0x12, 0x79, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x0d, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, 0x37, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, - 0x12, 0x8a, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, + 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x3c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, + 0x74, 0x65, 0x6d, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x12, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x22, 0x00, 0x12, + 0x90, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, + 0x65, 0x6d, 0x1a, 0x3c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x61, 0x67, 0x49, 0x74, 0x65, 0x6d, + 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x37, + 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x84, 0x01, - 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x8a, 0x01, + 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, - 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x12, 0x35, - 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x41, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, - 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, - 0x69, 0x70, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x08, 0x47, 0x65, - 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, - 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x10, - 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, - 0x12, 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x66, 0x66, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, - 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, - 0x64, 0x65, 0x73, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, - 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, + 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x11, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, - 0x1a, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x93, + 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, + 0x41, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x12, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, + 0x73, 0x1a, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x00, - 0x12, 0x7b, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x34, + 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x1a, 0x38, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x00, 0x12, + 0x6c, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x2f, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, + 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x0a, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x12, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, - 0x00, 0x12, 0x7e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, - 0x6c, 0x65, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x1a, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x0d, 0x47, + 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x34, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, + 0x6c, 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x22, - 0x00, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x00, 0x42, 0x3f, 0x5a, 0x3d, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var file_interservice_infra_proxy_service_infra_proxy_proto_goTypes = []interface{}{ @@ -452,56 +476,60 @@ var file_interservice_infra_proxy_service_infra_proxy_proto_goTypes = []interfac (*request.UpdateRole)(nil), // 18: chef.automate.domain.infra_proxy.request.UpdateRole (*request.Clients)(nil), // 19: chef.automate.domain.infra_proxy.request.Clients (*request.Client)(nil), // 20: chef.automate.domain.infra_proxy.request.Client - (*request.DataBags)(nil), // 21: chef.automate.domain.infra_proxy.request.DataBags - (*request.DataBag)(nil), // 22: chef.automate.domain.infra_proxy.request.DataBag - (*request.CreateDataBag)(nil), // 23: chef.automate.domain.infra_proxy.request.CreateDataBag - (*request.CreateDataBagItem)(nil), // 24: chef.automate.domain.infra_proxy.request.CreateDataBagItem - (*request.UpdateDataBagItem)(nil), // 25: chef.automate.domain.infra_proxy.request.UpdateDataBagItem - (*request.Environments)(nil), // 26: chef.automate.domain.infra_proxy.request.Environments - (*request.Environment)(nil), // 27: chef.automate.domain.infra_proxy.request.Environment - (*request.CreateEnvironment)(nil), // 28: chef.automate.domain.infra_proxy.request.CreateEnvironment - (*request.UpdateEnvironment)(nil), // 29: chef.automate.domain.infra_proxy.request.UpdateEnvironment - (*request.Nodes)(nil), // 30: chef.automate.domain.infra_proxy.request.Nodes - (*request.AffectedNodes)(nil), // 31: chef.automate.domain.infra_proxy.request.AffectedNodes - (*request.Node)(nil), // 32: chef.automate.domain.infra_proxy.request.Node - (*request.DeleteNode)(nil), // 33: chef.automate.domain.infra_proxy.request.DeleteNode - (*request.UpdateNode)(nil), // 34: chef.automate.domain.infra_proxy.request.UpdateNode - (*request.Policyfiles)(nil), // 35: chef.automate.domain.infra_proxy.request.Policyfiles - (*request.Policyfile)(nil), // 36: chef.automate.domain.infra_proxy.request.Policyfile - (*response.CreateServer)(nil), // 37: chef.automate.domain.infra_proxy.response.CreateServer - (*response.DeleteServer)(nil), // 38: chef.automate.domain.infra_proxy.response.DeleteServer - (*response.UpdateServer)(nil), // 39: chef.automate.domain.infra_proxy.response.UpdateServer - (*response.GetServers)(nil), // 40: chef.automate.domain.infra_proxy.response.GetServers - (*response.GetServer)(nil), // 41: chef.automate.domain.infra_proxy.response.GetServer - (*response.CreateOrg)(nil), // 42: chef.automate.domain.infra_proxy.response.CreateOrg - (*response.DeleteOrg)(nil), // 43: chef.automate.domain.infra_proxy.response.DeleteOrg - (*response.UpdateOrg)(nil), // 44: chef.automate.domain.infra_proxy.response.UpdateOrg - (*response.GetOrgs)(nil), // 45: chef.automate.domain.infra_proxy.response.GetOrgs - (*response.GetOrg)(nil), // 46: chef.automate.domain.infra_proxy.response.GetOrg - (*response.ResetOrgAdminKey)(nil), // 47: chef.automate.domain.infra_proxy.response.ResetOrgAdminKey - (*response.Cookbooks)(nil), // 48: chef.automate.domain.infra_proxy.response.Cookbooks - (*response.CookbookVersions)(nil), // 49: chef.automate.domain.infra_proxy.response.CookbookVersions - (*response.Cookbook)(nil), // 50: chef.automate.domain.infra_proxy.response.Cookbook - (*response.CookbookFileContent)(nil), // 51: chef.automate.domain.infra_proxy.response.CookbookFileContent - (*response.Roles)(nil), // 52: chef.automate.domain.infra_proxy.response.Roles - (*response.Role)(nil), // 53: chef.automate.domain.infra_proxy.response.Role - (*response.Clients)(nil), // 54: chef.automate.domain.infra_proxy.response.Clients - (*response.Client)(nil), // 55: chef.automate.domain.infra_proxy.response.Client - (*response.DataBags)(nil), // 56: chef.automate.domain.infra_proxy.response.DataBags - (*response.DataBag)(nil), // 57: chef.automate.domain.infra_proxy.response.DataBag - (*response.CreateDataBag)(nil), // 58: chef.automate.domain.infra_proxy.response.CreateDataBag - (*response.CreateDataBagItem)(nil), // 59: chef.automate.domain.infra_proxy.response.CreateDataBagItem - (*response.UpdateDataBagItem)(nil), // 60: chef.automate.domain.infra_proxy.response.UpdateDataBagItem - (*response.Environments)(nil), // 61: chef.automate.domain.infra_proxy.response.Environments - (*response.Environment)(nil), // 62: chef.automate.domain.infra_proxy.response.Environment - (*response.EnvironmentRecipesList)(nil), // 63: chef.automate.domain.infra_proxy.response.EnvironmentRecipesList - (*response.Nodes)(nil), // 64: chef.automate.domain.infra_proxy.response.Nodes - (*response.AffectedNodes)(nil), // 65: chef.automate.domain.infra_proxy.response.AffectedNodes - (*response.Node)(nil), // 66: chef.automate.domain.infra_proxy.response.Node - (*response.DeleteNode)(nil), // 67: chef.automate.domain.infra_proxy.response.DeleteNode - (*response.UpdateNode)(nil), // 68: chef.automate.domain.infra_proxy.response.UpdateNode - (*response.Policyfiles)(nil), // 69: chef.automate.domain.infra_proxy.response.Policyfiles - (*response.Policyfile)(nil), // 70: chef.automate.domain.infra_proxy.response.Policyfile + (*request.CreateClient)(nil), // 21: chef.automate.domain.infra_proxy.request.CreateClient + (*request.ClientKey)(nil), // 22: chef.automate.domain.infra_proxy.request.ClientKey + (*request.DataBags)(nil), // 23: chef.automate.domain.infra_proxy.request.DataBags + (*request.DataBag)(nil), // 24: chef.automate.domain.infra_proxy.request.DataBag + (*request.CreateDataBag)(nil), // 25: chef.automate.domain.infra_proxy.request.CreateDataBag + (*request.CreateDataBagItem)(nil), // 26: chef.automate.domain.infra_proxy.request.CreateDataBagItem + (*request.UpdateDataBagItem)(nil), // 27: chef.automate.domain.infra_proxy.request.UpdateDataBagItem + (*request.Environments)(nil), // 28: chef.automate.domain.infra_proxy.request.Environments + (*request.Environment)(nil), // 29: chef.automate.domain.infra_proxy.request.Environment + (*request.CreateEnvironment)(nil), // 30: chef.automate.domain.infra_proxy.request.CreateEnvironment + (*request.UpdateEnvironment)(nil), // 31: chef.automate.domain.infra_proxy.request.UpdateEnvironment + (*request.Nodes)(nil), // 32: chef.automate.domain.infra_proxy.request.Nodes + (*request.AffectedNodes)(nil), // 33: chef.automate.domain.infra_proxy.request.AffectedNodes + (*request.Node)(nil), // 34: chef.automate.domain.infra_proxy.request.Node + (*request.DeleteNode)(nil), // 35: chef.automate.domain.infra_proxy.request.DeleteNode + (*request.UpdateNode)(nil), // 36: chef.automate.domain.infra_proxy.request.UpdateNode + (*request.Policyfiles)(nil), // 37: chef.automate.domain.infra_proxy.request.Policyfiles + (*request.Policyfile)(nil), // 38: chef.automate.domain.infra_proxy.request.Policyfile + (*response.CreateServer)(nil), // 39: chef.automate.domain.infra_proxy.response.CreateServer + (*response.DeleteServer)(nil), // 40: chef.automate.domain.infra_proxy.response.DeleteServer + (*response.UpdateServer)(nil), // 41: chef.automate.domain.infra_proxy.response.UpdateServer + (*response.GetServers)(nil), // 42: chef.automate.domain.infra_proxy.response.GetServers + (*response.GetServer)(nil), // 43: chef.automate.domain.infra_proxy.response.GetServer + (*response.CreateOrg)(nil), // 44: chef.automate.domain.infra_proxy.response.CreateOrg + (*response.DeleteOrg)(nil), // 45: chef.automate.domain.infra_proxy.response.DeleteOrg + (*response.UpdateOrg)(nil), // 46: chef.automate.domain.infra_proxy.response.UpdateOrg + (*response.GetOrgs)(nil), // 47: chef.automate.domain.infra_proxy.response.GetOrgs + (*response.GetOrg)(nil), // 48: chef.automate.domain.infra_proxy.response.GetOrg + (*response.ResetOrgAdminKey)(nil), // 49: chef.automate.domain.infra_proxy.response.ResetOrgAdminKey + (*response.Cookbooks)(nil), // 50: chef.automate.domain.infra_proxy.response.Cookbooks + (*response.CookbookVersions)(nil), // 51: chef.automate.domain.infra_proxy.response.CookbookVersions + (*response.Cookbook)(nil), // 52: chef.automate.domain.infra_proxy.response.Cookbook + (*response.CookbookFileContent)(nil), // 53: chef.automate.domain.infra_proxy.response.CookbookFileContent + (*response.Roles)(nil), // 54: chef.automate.domain.infra_proxy.response.Roles + (*response.Role)(nil), // 55: chef.automate.domain.infra_proxy.response.Role + (*response.Clients)(nil), // 56: chef.automate.domain.infra_proxy.response.Clients + (*response.Client)(nil), // 57: chef.automate.domain.infra_proxy.response.Client + (*response.CreateClient)(nil), // 58: chef.automate.domain.infra_proxy.response.CreateClient + (*response.ClientKey)(nil), // 59: chef.automate.domain.infra_proxy.response.ClientKey + (*response.DataBags)(nil), // 60: chef.automate.domain.infra_proxy.response.DataBags + (*response.DataBag)(nil), // 61: chef.automate.domain.infra_proxy.response.DataBag + (*response.CreateDataBag)(nil), // 62: chef.automate.domain.infra_proxy.response.CreateDataBag + (*response.CreateDataBagItem)(nil), // 63: chef.automate.domain.infra_proxy.response.CreateDataBagItem + (*response.UpdateDataBagItem)(nil), // 64: chef.automate.domain.infra_proxy.response.UpdateDataBagItem + (*response.Environments)(nil), // 65: chef.automate.domain.infra_proxy.response.Environments + (*response.Environment)(nil), // 66: chef.automate.domain.infra_proxy.response.Environment + (*response.EnvironmentRecipesList)(nil), // 67: chef.automate.domain.infra_proxy.response.EnvironmentRecipesList + (*response.Nodes)(nil), // 68: chef.automate.domain.infra_proxy.response.Nodes + (*response.AffectedNodes)(nil), // 69: chef.automate.domain.infra_proxy.response.AffectedNodes + (*response.Node)(nil), // 70: chef.automate.domain.infra_proxy.response.Node + (*response.DeleteNode)(nil), // 71: chef.automate.domain.infra_proxy.response.DeleteNode + (*response.UpdateNode)(nil), // 72: chef.automate.domain.infra_proxy.response.UpdateNode + (*response.Policyfiles)(nil), // 73: chef.automate.domain.infra_proxy.response.Policyfiles + (*response.Policyfile)(nil), // 74: chef.automate.domain.infra_proxy.response.Policyfile } var file_interservice_infra_proxy_service_infra_proxy_proto_depIdxs = []int32{ 0, // 0: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateServer:input_type -> chef.automate.domain.infra_proxy.request.CreateServer @@ -526,68 +554,74 @@ var file_interservice_infra_proxy_service_infra_proxy_proto_depIdxs = []int32{ 18, // 19: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateRole:input_type -> chef.automate.domain.infra_proxy.request.UpdateRole 19, // 20: chef.automate.domain.infra_proxy.service.InfraProxyService.GetClients:input_type -> chef.automate.domain.infra_proxy.request.Clients 20, // 21: chef.automate.domain.infra_proxy.service.InfraProxyService.GetClient:input_type -> chef.automate.domain.infra_proxy.request.Client - 21, // 22: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBags:input_type -> chef.automate.domain.infra_proxy.request.DataBags - 22, // 23: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBagItem:input_type -> chef.automate.domain.infra_proxy.request.DataBag - 23, // 24: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBag:input_type -> chef.automate.domain.infra_proxy.request.CreateDataBag - 24, // 25: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBagItem:input_type -> chef.automate.domain.infra_proxy.request.CreateDataBagItem - 22, // 26: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteDataBag:input_type -> chef.automate.domain.infra_proxy.request.DataBag - 25, // 27: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateDataBagItem:input_type -> chef.automate.domain.infra_proxy.request.UpdateDataBagItem - 26, // 28: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironments:input_type -> chef.automate.domain.infra_proxy.request.Environments - 27, // 29: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironment:input_type -> chef.automate.domain.infra_proxy.request.Environment - 28, // 30: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateEnvironment:input_type -> chef.automate.domain.infra_proxy.request.CreateEnvironment - 29, // 31: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateEnvironment:input_type -> chef.automate.domain.infra_proxy.request.UpdateEnvironment - 27, // 32: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteEnvironment:input_type -> chef.automate.domain.infra_proxy.request.Environment - 27, // 33: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironmentRecipes:input_type -> chef.automate.domain.infra_proxy.request.Environment - 30, // 34: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNodes:input_type -> chef.automate.domain.infra_proxy.request.Nodes - 31, // 35: chef.automate.domain.infra_proxy.service.InfraProxyService.GetAffectedNodes:input_type -> chef.automate.domain.infra_proxy.request.AffectedNodes - 32, // 36: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNode:input_type -> chef.automate.domain.infra_proxy.request.Node - 33, // 37: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteNode:input_type -> chef.automate.domain.infra_proxy.request.DeleteNode - 34, // 38: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateNode:input_type -> chef.automate.domain.infra_proxy.request.UpdateNode - 35, // 39: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfiles:input_type -> chef.automate.domain.infra_proxy.request.Policyfiles - 36, // 40: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfile:input_type -> chef.automate.domain.infra_proxy.request.Policyfile - 37, // 41: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateServer:output_type -> chef.automate.domain.infra_proxy.response.CreateServer - 38, // 42: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteServer:output_type -> chef.automate.domain.infra_proxy.response.DeleteServer - 39, // 43: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateServer:output_type -> chef.automate.domain.infra_proxy.response.UpdateServer - 40, // 44: chef.automate.domain.infra_proxy.service.InfraProxyService.GetServers:output_type -> chef.automate.domain.infra_proxy.response.GetServers - 41, // 45: chef.automate.domain.infra_proxy.service.InfraProxyService.GetServer:output_type -> chef.automate.domain.infra_proxy.response.GetServer - 42, // 46: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateOrg:output_type -> chef.automate.domain.infra_proxy.response.CreateOrg - 43, // 47: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteOrg:output_type -> chef.automate.domain.infra_proxy.response.DeleteOrg - 44, // 48: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateOrg:output_type -> chef.automate.domain.infra_proxy.response.UpdateOrg - 45, // 49: chef.automate.domain.infra_proxy.service.InfraProxyService.GetOrgs:output_type -> chef.automate.domain.infra_proxy.response.GetOrgs - 46, // 50: chef.automate.domain.infra_proxy.service.InfraProxyService.GetOrg:output_type -> chef.automate.domain.infra_proxy.response.GetOrg - 47, // 51: chef.automate.domain.infra_proxy.service.InfraProxyService.ResetOrgAdminKey:output_type -> chef.automate.domain.infra_proxy.response.ResetOrgAdminKey - 48, // 52: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbooks:output_type -> chef.automate.domain.infra_proxy.response.Cookbooks - 49, // 53: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbookVersions:output_type -> chef.automate.domain.infra_proxy.response.CookbookVersions - 50, // 54: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbook:output_type -> chef.automate.domain.infra_proxy.response.Cookbook - 51, // 55: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbookFileContent:output_type -> chef.automate.domain.infra_proxy.response.CookbookFileContent - 52, // 56: chef.automate.domain.infra_proxy.service.InfraProxyService.GetRoles:output_type -> chef.automate.domain.infra_proxy.response.Roles - 53, // 57: chef.automate.domain.infra_proxy.service.InfraProxyService.GetRole:output_type -> chef.automate.domain.infra_proxy.response.Role - 53, // 58: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateRole:output_type -> chef.automate.domain.infra_proxy.response.Role - 53, // 59: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteRole:output_type -> chef.automate.domain.infra_proxy.response.Role - 53, // 60: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateRole:output_type -> chef.automate.domain.infra_proxy.response.Role - 54, // 61: chef.automate.domain.infra_proxy.service.InfraProxyService.GetClients:output_type -> chef.automate.domain.infra_proxy.response.Clients - 55, // 62: chef.automate.domain.infra_proxy.service.InfraProxyService.GetClient:output_type -> chef.automate.domain.infra_proxy.response.Client - 56, // 63: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBags:output_type -> chef.automate.domain.infra_proxy.response.DataBags - 57, // 64: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBagItem:output_type -> chef.automate.domain.infra_proxy.response.DataBag - 58, // 65: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBag:output_type -> chef.automate.domain.infra_proxy.response.CreateDataBag - 59, // 66: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBagItem:output_type -> chef.automate.domain.infra_proxy.response.CreateDataBagItem - 57, // 67: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteDataBag:output_type -> chef.automate.domain.infra_proxy.response.DataBag - 60, // 68: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateDataBagItem:output_type -> chef.automate.domain.infra_proxy.response.UpdateDataBagItem - 61, // 69: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironments:output_type -> chef.automate.domain.infra_proxy.response.Environments - 62, // 70: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment - 62, // 71: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment - 62, // 72: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment - 62, // 73: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment - 63, // 74: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironmentRecipes:output_type -> chef.automate.domain.infra_proxy.response.EnvironmentRecipesList - 64, // 75: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNodes:output_type -> chef.automate.domain.infra_proxy.response.Nodes - 65, // 76: chef.automate.domain.infra_proxy.service.InfraProxyService.GetAffectedNodes:output_type -> chef.automate.domain.infra_proxy.response.AffectedNodes - 66, // 77: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNode:output_type -> chef.automate.domain.infra_proxy.response.Node - 67, // 78: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteNode:output_type -> chef.automate.domain.infra_proxy.response.DeleteNode - 68, // 79: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateNode:output_type -> chef.automate.domain.infra_proxy.response.UpdateNode - 69, // 80: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfiles:output_type -> chef.automate.domain.infra_proxy.response.Policyfiles - 70, // 81: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfile:output_type -> chef.automate.domain.infra_proxy.response.Policyfile - 41, // [41:82] is the sub-list for method output_type - 0, // [0:41] is the sub-list for method input_type + 21, // 22: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateClient:input_type -> chef.automate.domain.infra_proxy.request.CreateClient + 20, // 23: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteClient:input_type -> chef.automate.domain.infra_proxy.request.Client + 22, // 24: chef.automate.domain.infra_proxy.service.InfraProxyService.ResetClientKey:input_type -> chef.automate.domain.infra_proxy.request.ClientKey + 23, // 25: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBags:input_type -> chef.automate.domain.infra_proxy.request.DataBags + 24, // 26: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBagItem:input_type -> chef.automate.domain.infra_proxy.request.DataBag + 25, // 27: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBag:input_type -> chef.automate.domain.infra_proxy.request.CreateDataBag + 26, // 28: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBagItem:input_type -> chef.automate.domain.infra_proxy.request.CreateDataBagItem + 24, // 29: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteDataBag:input_type -> chef.automate.domain.infra_proxy.request.DataBag + 27, // 30: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateDataBagItem:input_type -> chef.automate.domain.infra_proxy.request.UpdateDataBagItem + 28, // 31: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironments:input_type -> chef.automate.domain.infra_proxy.request.Environments + 29, // 32: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironment:input_type -> chef.automate.domain.infra_proxy.request.Environment + 30, // 33: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateEnvironment:input_type -> chef.automate.domain.infra_proxy.request.CreateEnvironment + 31, // 34: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateEnvironment:input_type -> chef.automate.domain.infra_proxy.request.UpdateEnvironment + 29, // 35: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteEnvironment:input_type -> chef.automate.domain.infra_proxy.request.Environment + 29, // 36: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironmentRecipes:input_type -> chef.automate.domain.infra_proxy.request.Environment + 32, // 37: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNodes:input_type -> chef.automate.domain.infra_proxy.request.Nodes + 33, // 38: chef.automate.domain.infra_proxy.service.InfraProxyService.GetAffectedNodes:input_type -> chef.automate.domain.infra_proxy.request.AffectedNodes + 34, // 39: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNode:input_type -> chef.automate.domain.infra_proxy.request.Node + 35, // 40: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteNode:input_type -> chef.automate.domain.infra_proxy.request.DeleteNode + 36, // 41: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateNode:input_type -> chef.automate.domain.infra_proxy.request.UpdateNode + 37, // 42: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfiles:input_type -> chef.automate.domain.infra_proxy.request.Policyfiles + 38, // 43: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfile:input_type -> chef.automate.domain.infra_proxy.request.Policyfile + 39, // 44: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateServer:output_type -> chef.automate.domain.infra_proxy.response.CreateServer + 40, // 45: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteServer:output_type -> chef.automate.domain.infra_proxy.response.DeleteServer + 41, // 46: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateServer:output_type -> chef.automate.domain.infra_proxy.response.UpdateServer + 42, // 47: chef.automate.domain.infra_proxy.service.InfraProxyService.GetServers:output_type -> chef.automate.domain.infra_proxy.response.GetServers + 43, // 48: chef.automate.domain.infra_proxy.service.InfraProxyService.GetServer:output_type -> chef.automate.domain.infra_proxy.response.GetServer + 44, // 49: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateOrg:output_type -> chef.automate.domain.infra_proxy.response.CreateOrg + 45, // 50: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteOrg:output_type -> chef.automate.domain.infra_proxy.response.DeleteOrg + 46, // 51: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateOrg:output_type -> chef.automate.domain.infra_proxy.response.UpdateOrg + 47, // 52: chef.automate.domain.infra_proxy.service.InfraProxyService.GetOrgs:output_type -> chef.automate.domain.infra_proxy.response.GetOrgs + 48, // 53: chef.automate.domain.infra_proxy.service.InfraProxyService.GetOrg:output_type -> chef.automate.domain.infra_proxy.response.GetOrg + 49, // 54: chef.automate.domain.infra_proxy.service.InfraProxyService.ResetOrgAdminKey:output_type -> chef.automate.domain.infra_proxy.response.ResetOrgAdminKey + 50, // 55: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbooks:output_type -> chef.automate.domain.infra_proxy.response.Cookbooks + 51, // 56: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbookVersions:output_type -> chef.automate.domain.infra_proxy.response.CookbookVersions + 52, // 57: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbook:output_type -> chef.automate.domain.infra_proxy.response.Cookbook + 53, // 58: chef.automate.domain.infra_proxy.service.InfraProxyService.GetCookbookFileContent:output_type -> chef.automate.domain.infra_proxy.response.CookbookFileContent + 54, // 59: chef.automate.domain.infra_proxy.service.InfraProxyService.GetRoles:output_type -> chef.automate.domain.infra_proxy.response.Roles + 55, // 60: chef.automate.domain.infra_proxy.service.InfraProxyService.GetRole:output_type -> chef.automate.domain.infra_proxy.response.Role + 55, // 61: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateRole:output_type -> chef.automate.domain.infra_proxy.response.Role + 55, // 62: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteRole:output_type -> chef.automate.domain.infra_proxy.response.Role + 55, // 63: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateRole:output_type -> chef.automate.domain.infra_proxy.response.Role + 56, // 64: chef.automate.domain.infra_proxy.service.InfraProxyService.GetClients:output_type -> chef.automate.domain.infra_proxy.response.Clients + 57, // 65: chef.automate.domain.infra_proxy.service.InfraProxyService.GetClient:output_type -> chef.automate.domain.infra_proxy.response.Client + 58, // 66: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateClient:output_type -> chef.automate.domain.infra_proxy.response.CreateClient + 57, // 67: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteClient:output_type -> chef.automate.domain.infra_proxy.response.Client + 59, // 68: chef.automate.domain.infra_proxy.service.InfraProxyService.ResetClientKey:output_type -> chef.automate.domain.infra_proxy.response.ClientKey + 60, // 69: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBags:output_type -> chef.automate.domain.infra_proxy.response.DataBags + 61, // 70: chef.automate.domain.infra_proxy.service.InfraProxyService.GetDataBagItem:output_type -> chef.automate.domain.infra_proxy.response.DataBag + 62, // 71: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBag:output_type -> chef.automate.domain.infra_proxy.response.CreateDataBag + 63, // 72: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateDataBagItem:output_type -> chef.automate.domain.infra_proxy.response.CreateDataBagItem + 61, // 73: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteDataBag:output_type -> chef.automate.domain.infra_proxy.response.DataBag + 64, // 74: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateDataBagItem:output_type -> chef.automate.domain.infra_proxy.response.UpdateDataBagItem + 65, // 75: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironments:output_type -> chef.automate.domain.infra_proxy.response.Environments + 66, // 76: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment + 66, // 77: chef.automate.domain.infra_proxy.service.InfraProxyService.CreateEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment + 66, // 78: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment + 66, // 79: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteEnvironment:output_type -> chef.automate.domain.infra_proxy.response.Environment + 67, // 80: chef.automate.domain.infra_proxy.service.InfraProxyService.GetEnvironmentRecipes:output_type -> chef.automate.domain.infra_proxy.response.EnvironmentRecipesList + 68, // 81: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNodes:output_type -> chef.automate.domain.infra_proxy.response.Nodes + 69, // 82: chef.automate.domain.infra_proxy.service.InfraProxyService.GetAffectedNodes:output_type -> chef.automate.domain.infra_proxy.response.AffectedNodes + 70, // 83: chef.automate.domain.infra_proxy.service.InfraProxyService.GetNode:output_type -> chef.automate.domain.infra_proxy.response.Node + 71, // 84: chef.automate.domain.infra_proxy.service.InfraProxyService.DeleteNode:output_type -> chef.automate.domain.infra_proxy.response.DeleteNode + 72, // 85: chef.automate.domain.infra_proxy.service.InfraProxyService.UpdateNode:output_type -> chef.automate.domain.infra_proxy.response.UpdateNode + 73, // 86: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfiles:output_type -> chef.automate.domain.infra_proxy.response.Policyfiles + 74, // 87: chef.automate.domain.infra_proxy.service.InfraProxyService.GetPolicyfile:output_type -> chef.automate.domain.infra_proxy.response.Policyfile + 44, // [44:88] is the sub-list for method output_type + 0, // [0:44] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name @@ -651,6 +685,9 @@ type InfraProxyServiceClient interface { UpdateRole(ctx context.Context, in *request.UpdateRole, opts ...grpc.CallOption) (*response.Role, error) GetClients(ctx context.Context, in *request.Clients, opts ...grpc.CallOption) (*response.Clients, error) GetClient(ctx context.Context, in *request.Client, opts ...grpc.CallOption) (*response.Client, error) + CreateClient(ctx context.Context, in *request.CreateClient, opts ...grpc.CallOption) (*response.CreateClient, error) + DeleteClient(ctx context.Context, in *request.Client, opts ...grpc.CallOption) (*response.Client, error) + ResetClientKey(ctx context.Context, in *request.ClientKey, opts ...grpc.CallOption) (*response.ClientKey, error) GetDataBags(ctx context.Context, in *request.DataBags, opts ...grpc.CallOption) (*response.DataBags, error) GetDataBagItem(ctx context.Context, in *request.DataBag, opts ...grpc.CallOption) (*response.DataBag, error) CreateDataBag(ctx context.Context, in *request.CreateDataBag, opts ...grpc.CallOption) (*response.CreateDataBag, error) @@ -878,6 +915,33 @@ func (c *infraProxyServiceClient) GetClient(ctx context.Context, in *request.Cli return out, nil } +func (c *infraProxyServiceClient) CreateClient(ctx context.Context, in *request.CreateClient, opts ...grpc.CallOption) (*response.CreateClient, error) { + out := new(response.CreateClient) + err := c.cc.Invoke(ctx, "/chef.automate.domain.infra_proxy.service.InfraProxyService/CreateClient", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *infraProxyServiceClient) DeleteClient(ctx context.Context, in *request.Client, opts ...grpc.CallOption) (*response.Client, error) { + out := new(response.Client) + err := c.cc.Invoke(ctx, "/chef.automate.domain.infra_proxy.service.InfraProxyService/DeleteClient", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *infraProxyServiceClient) ResetClientKey(ctx context.Context, in *request.ClientKey, opts ...grpc.CallOption) (*response.ClientKey, error) { + out := new(response.ClientKey) + err := c.cc.Invoke(ctx, "/chef.automate.domain.infra_proxy.service.InfraProxyService/ResetClientKey", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *infraProxyServiceClient) GetDataBags(ctx context.Context, in *request.DataBags, opts ...grpc.CallOption) (*response.DataBags, error) { out := new(response.DataBags) err := c.cc.Invoke(ctx, "/chef.automate.domain.infra_proxy.service.InfraProxyService/GetDataBags", in, out, opts...) @@ -1073,6 +1137,9 @@ type InfraProxyServiceServer interface { UpdateRole(context.Context, *request.UpdateRole) (*response.Role, error) GetClients(context.Context, *request.Clients) (*response.Clients, error) GetClient(context.Context, *request.Client) (*response.Client, error) + CreateClient(context.Context, *request.CreateClient) (*response.CreateClient, error) + DeleteClient(context.Context, *request.Client) (*response.Client, error) + ResetClientKey(context.Context, *request.ClientKey) (*response.ClientKey, error) GetDataBags(context.Context, *request.DataBags) (*response.DataBags, error) GetDataBagItem(context.Context, *request.DataBag) (*response.DataBag, error) CreateDataBag(context.Context, *request.CreateDataBag) (*response.CreateDataBag, error) @@ -1164,6 +1231,15 @@ func (*UnimplementedInfraProxyServiceServer) GetClients(context.Context, *reques func (*UnimplementedInfraProxyServiceServer) GetClient(context.Context, *request.Client) (*response.Client, error) { return nil, status.Errorf(codes.Unimplemented, "method GetClient not implemented") } +func (*UnimplementedInfraProxyServiceServer) CreateClient(context.Context, *request.CreateClient) (*response.CreateClient, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateClient not implemented") +} +func (*UnimplementedInfraProxyServiceServer) DeleteClient(context.Context, *request.Client) (*response.Client, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteClient not implemented") +} +func (*UnimplementedInfraProxyServiceServer) ResetClientKey(context.Context, *request.ClientKey) (*response.ClientKey, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResetClientKey not implemented") +} func (*UnimplementedInfraProxyServiceServer) GetDataBags(context.Context, *request.DataBags) (*response.DataBags, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDataBags not implemented") } @@ -1622,6 +1698,60 @@ func _InfraProxyService_GetClient_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _InfraProxyService_CreateClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(request.CreateClient) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InfraProxyServiceServer).CreateClient(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/chef.automate.domain.infra_proxy.service.InfraProxyService/CreateClient", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InfraProxyServiceServer).CreateClient(ctx, req.(*request.CreateClient)) + } + return interceptor(ctx, in, info, handler) +} + +func _InfraProxyService_DeleteClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(request.Client) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InfraProxyServiceServer).DeleteClient(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/chef.automate.domain.infra_proxy.service.InfraProxyService/DeleteClient", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InfraProxyServiceServer).DeleteClient(ctx, req.(*request.Client)) + } + return interceptor(ctx, in, info, handler) +} + +func _InfraProxyService_ResetClientKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(request.ClientKey) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InfraProxyServiceServer).ResetClientKey(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/chef.automate.domain.infra_proxy.service.InfraProxyService/ResetClientKey", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InfraProxyServiceServer).ResetClientKey(ctx, req.(*request.ClientKey)) + } + return interceptor(ctx, in, info, handler) +} + func _InfraProxyService_GetDataBags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(request.DataBags) if err := dec(in); err != nil { @@ -2056,6 +2186,18 @@ var _InfraProxyService_serviceDesc = grpc.ServiceDesc{ MethodName: "GetClient", Handler: _InfraProxyService_GetClient_Handler, }, + { + MethodName: "CreateClient", + Handler: _InfraProxyService_CreateClient_Handler, + }, + { + MethodName: "DeleteClient", + Handler: _InfraProxyService_DeleteClient_Handler, + }, + { + MethodName: "ResetClientKey", + Handler: _InfraProxyService_ResetClientKey_Handler, + }, { MethodName: "GetDataBags", Handler: _InfraProxyService_GetDataBags_Handler, diff --git a/api/interservice/infra_proxy/service/infra_proxy.proto b/api/interservice/infra_proxy/service/infra_proxy.proto index 50271743855..721dd521cf9 100644 --- a/api/interservice/infra_proxy/service/infra_proxy.proto +++ b/api/interservice/infra_proxy/service/infra_proxy.proto @@ -50,6 +50,9 @@ service InfraProxyService { rpc GetClients (chef.automate.domain.infra_proxy.request.Clients) returns (chef.automate.domain.infra_proxy.response.Clients) {}; rpc GetClient (chef.automate.domain.infra_proxy.request.Client) returns (chef.automate.domain.infra_proxy.response.Client) {}; + rpc CreateClient (chef.automate.domain.infra_proxy.request.CreateClient) returns (chef.automate.domain.infra_proxy.response.CreateClient) {}; + rpc DeleteClient (chef.automate.domain.infra_proxy.request.Client) returns (chef.automate.domain.infra_proxy.response.Client) {}; + rpc ResetClientKey (chef.automate.domain.infra_proxy.request.ClientKey) returns (chef.automate.domain.infra_proxy.response.ClientKey) {}; rpc GetDataBags (chef.automate.domain.infra_proxy.request.DataBags) returns (chef.automate.domain.infra_proxy.response.DataBags) {}; rpc GetDataBagItem (chef.automate.domain.infra_proxy.request.DataBag) returns (chef.automate.domain.infra_proxy.response.DataBag) {}; diff --git a/components/automate-gateway/api/infra_proxy.pb.swagger.go b/components/automate-gateway/api/infra_proxy.pb.swagger.go index 7ea00a0e7bb..f8b40ff52dc 100644 --- a/components/automate-gateway/api/infra_proxy.pb.swagger.go +++ b/components/automate-gateway/api/infra_proxy.pb.swagger.go @@ -490,6 +490,50 @@ func init() { "tags": [ "InfraProxy" ] + }, + "post": { + "operationId": "InfraProxy_CreateClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.CreateClient" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.request.CreateClient" + } + } + ], + "tags": [ + "InfraProxy" + ] } }, "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}": { @@ -535,6 +579,102 @@ func init() { "tags": [ "InfraProxy" ] + }, + "delete": { + "operationId": "InfraProxy_DeleteClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.Client" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "name", + "description": "Client name.", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "InfraProxy" + ] + } + }, + "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}/reset": { + "put": { + "operationId": "InfraProxy_ResetClientKey", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientKey" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "name", + "description": "Client name.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.request.ClientKey" + } + } + ], + "tags": [ + "InfraProxy" + ] } }, "/api/v0/infra/servers/{server_id}/orgs/{org_id}/cookbooks": { @@ -1791,6 +1931,54 @@ func init() { } }, "definitions": { + "chef.automate.api.infra_proxy.request.ClientKey": { + "type": "object", + "properties": { + "org_id": { + "type": "string", + "description": "Chef organization ID." + }, + "server_id": { + "type": "string", + "description": "Chef Infra Server ID." + }, + "name": { + "type": "string", + "description": "Client name." + }, + "key": { + "type": "string", + "description": "Client key name." + } + } + }, + "chef.automate.api.infra_proxy.request.CreateClient": { + "type": "object", + "properties": { + "org_id": { + "type": "string", + "description": "Chef organization ID." + }, + "server_id": { + "type": "string", + "description": "Chef Infra Server ID." + }, + "name": { + "type": "string", + "description": "Client name." + }, + "validator": { + "type": "boolean", + "format": "boolean", + "description": "Boolean indicates client type is validator or not." + }, + "create_key": { + "type": "boolean", + "format": "boolean", + "description": "Boolean indicates whether it's required to create a key or not." + } + } + }, "chef.automate.api.infra_proxy.request.CreateDataBag": { "type": "object", "properties": { @@ -2246,6 +2434,48 @@ func init() { "chef_type": { "type": "string", "description": "Chef object type." + }, + "client_key": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientAccessKey", + "description": "Client key detail." + } + } + }, + "chef.automate.api.infra_proxy.response.ClientAccessKey": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client key name." + }, + "public_key": { + "type": "string", + "description": "Client public key." + }, + "expiration_date": { + "type": "string", + "description": "Client key expiration date string." + } + } + }, + "chef.automate.api.infra_proxy.response.ClientKey": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client key name." + }, + "public_key": { + "type": "string", + "description": "Client public key." + }, + "expiration_date": { + "type": "string", + "description": "Client key expiration date string." + }, + "private_key": { + "type": "string", + "description": "Client private key." } } }, @@ -2512,6 +2742,19 @@ func init() { } } }, + "chef.automate.api.infra_proxy.response.CreateClient": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client name." + }, + "client_key": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientKey", + "description": "Client key detail." + } + } + }, "chef.automate.api.infra_proxy.response.CreateDataBag": { "type": "object", "properties": { diff --git a/components/automate-gateway/handler/infra_proxy/clients.go b/components/automate-gateway/handler/infra_proxy/clients.go index bd3053893c2..9b0751a97e4 100644 --- a/components/automate-gateway/handler/infra_proxy/clients.go +++ b/components/automate-gateway/handler/infra_proxy/clients.go @@ -44,6 +44,73 @@ func (a *InfraProxyServer) GetClient(ctx context.Context, r *gwreq.Client) (*gwr Validator: res.GetValidator(), JsonClass: res.GetJsonClass(), ChefType: res.GetChefType(), + ClientKey: &gwres.ClientAccessKey{ + Name: res.GetClientKey().GetName(), + ExpirationDate: res.GetClientKey().GetExpirationDate(), + PublicKey: res.GetClientKey().GetPublicKey(), + }, + }, nil +} + +// CreateClient creates an infra client +func (a *InfraProxyServer) CreateClient(ctx context.Context, r *gwreq.CreateClient) (*gwres.CreateClient, error) { + req := &infra_req.CreateClient{ + OrgId: r.OrgId, + ServerId: r.ServerId, + Name: r.Name, + Validator: r.Validator, + CreateKey: r.CreateKey, + } + res, err := a.client.CreateClient(ctx, req) + if err != nil { + return nil, err + } + + return &gwres.CreateClient{ + Name: res.GetName(), + ClientKey: &gwres.ClientKey{ + Name: res.GetClientKey().GetName(), + PublicKey: res.GetClientKey().GetPublicKey(), + ExpirationDate: res.GetClientKey().GetExpirationDate(), + PrivateKey: res.GetClientKey().GetPrivateKey(), + }, + }, nil +} + +// DeleteClient deletes an infra client +func (a *InfraProxyServer) DeleteClient(ctx context.Context, r *gwreq.Client) (*gwres.Client, error) { + req := &infra_req.Client{ + OrgId: r.OrgId, + ServerId: r.ServerId, + Name: r.Name, + } + res, err := a.client.DeleteClient(ctx, req) + if err != nil { + return nil, err + } + + return &gwres.Client{ + Name: res.GetName(), + }, nil +} + +// ResetClientKey resets an infra client key +// Deletes the associated key pair and generates new key pair again, and then attaches it to the client. +func (a *InfraProxyServer) ResetClientKey(ctx context.Context, r *gwreq.ClientKey) (*gwres.ClientKey, error) { + req := &infra_req.ClientKey{ + OrgId: r.OrgId, + ServerId: r.ServerId, + Name: r.Name, + Key: r.Key, + } + res, err := a.client.ResetClientKey(ctx, req) + if err != nil { + return nil, err + } + + return &gwres.ClientKey{ + Name: res.GetName(), + PrivateKey: res.GetPrivateKey(), }, nil } diff --git a/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json b/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json index 30e4fe8541c..e6f5728b793 100644 --- a/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json +++ b/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json @@ -487,6 +487,50 @@ "tags": [ "InfraProxy" ] + }, + "post": { + "operationId": "InfraProxy_CreateClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.CreateClient" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.request.CreateClient" + } + } + ], + "tags": [ + "InfraProxy" + ] } }, "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}": { @@ -532,6 +576,102 @@ "tags": [ "InfraProxy" ] + }, + "delete": { + "operationId": "InfraProxy_DeleteClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.Client" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "name", + "description": "Client name.", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "InfraProxy" + ] + } + }, + "/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}/reset": { + "put": { + "operationId": "InfraProxy_ResetClientKey", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientKey" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/grpc.gateway.runtime.Error" + } + } + }, + "parameters": [ + { + "name": "server_id", + "description": "Chef Infra Server ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "org_id", + "description": "Chef organization ID.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "name", + "description": "Client name.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.request.ClientKey" + } + } + ], + "tags": [ + "InfraProxy" + ] } }, "/api/v0/infra/servers/{server_id}/orgs/{org_id}/cookbooks": { @@ -1788,6 +1928,54 @@ } }, "definitions": { + "chef.automate.api.infra_proxy.request.ClientKey": { + "type": "object", + "properties": { + "org_id": { + "type": "string", + "description": "Chef organization ID." + }, + "server_id": { + "type": "string", + "description": "Chef Infra Server ID." + }, + "name": { + "type": "string", + "description": "Client name." + }, + "key": { + "type": "string", + "description": "Client key name." + } + } + }, + "chef.automate.api.infra_proxy.request.CreateClient": { + "type": "object", + "properties": { + "org_id": { + "type": "string", + "description": "Chef organization ID." + }, + "server_id": { + "type": "string", + "description": "Chef Infra Server ID." + }, + "name": { + "type": "string", + "description": "Client name." + }, + "validator": { + "type": "boolean", + "format": "boolean", + "description": "Boolean indicates client type is validator or not." + }, + "create_key": { + "type": "boolean", + "format": "boolean", + "description": "Boolean indicates whether it's required to create a key or not." + } + } + }, "chef.automate.api.infra_proxy.request.CreateDataBag": { "type": "object", "properties": { @@ -2243,6 +2431,48 @@ "chef_type": { "type": "string", "description": "Chef object type." + }, + "client_key": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientAccessKey", + "description": "Client key detail." + } + } + }, + "chef.automate.api.infra_proxy.response.ClientAccessKey": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client key name." + }, + "public_key": { + "type": "string", + "description": "Client public key." + }, + "expiration_date": { + "type": "string", + "description": "Client key expiration date string." + } + } + }, + "chef.automate.api.infra_proxy.response.ClientKey": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client key name." + }, + "public_key": { + "type": "string", + "description": "Client public key." + }, + "expiration_date": { + "type": "string", + "description": "Client key expiration date string." + }, + "private_key": { + "type": "string", + "description": "Client private key." } } }, @@ -2509,6 +2739,19 @@ } } }, + "chef.automate.api.infra_proxy.response.CreateClient": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Client name." + }, + "client_key": { + "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientKey", + "description": "Client key detail." + } + } + }, "chef.automate.api.infra_proxy.response.CreateDataBag": { "type": "object", "properties": { diff --git a/components/infra-proxy-service/server/clients.go b/components/infra-proxy-service/server/clients.go index d4a7a872501..9b6a30ef7c2 100644 --- a/components/infra-proxy-service/server/clients.go +++ b/components/infra-proxy-service/server/clients.go @@ -2,18 +2,27 @@ package server import ( "context" + "fmt" "sort" chef "github.com/go-chef/chef" "github.com/chef/automate/api/interservice/infra_proxy/request" "github.com/chef/automate/api/interservice/infra_proxy/response" + "github.com/chef/automate/components/infra-proxy-service/validation" ) +// AccessKeyReq struct to add key. +type AccessKeyReq struct { + Name string `json:"name,omitempty"` + PublicKey string `json:"public_key,omitempty"` + ExpirationDate string `json:"expiration_date,omitempty"` + CreateKey bool `json:"create_key,omitempty"` +} + // GetClients get clients list func (s *Server) GetClients(ctx context.Context, req *request.Clients) (*response.Clients, error) { c, err := s.createClient(ctx, req.OrgId, req.ServerId) - if err != nil { return nil, err } @@ -28,7 +37,7 @@ func (s *Server) GetClients(ctx context.Context, req *request.Clients) (*respons }, nil } -// GetClient get client +// GetClient gets the client func (s *Server) GetClient(ctx context.Context, req *request.Client) (*response.Client, error) { c, err := s.createClient(ctx, req.OrgId, req.ServerId) if err != nil { @@ -40,6 +49,18 @@ func (s *Server) GetClient(ctx context.Context, req *request.Client) (*response. return nil, ParseAPIError(err) } + // Fetch associated default client key detail + // Ignore if any error while fetching this. + var clientKey response.ClientAccessKey + chefKey, err := c.client.Clients.GetKey(req.Name, "default") + if err == nil { + clientKey = response.ClientAccessKey{ + Name: chefKey.Name, + ExpirationDate: chefKey.ExpirationDate, + PublicKey: chefKey.PublicKey, + } + } + return &response.Client{ Name: ic.Name, ClientName: ic.ClientName, @@ -47,6 +68,137 @@ func (s *Server) GetClient(ctx context.Context, req *request.Client) (*response. Validator: ic.Validator, JsonClass: ic.JsonClass, ChefType: ic.ChefType, + ClientKey: &clientKey, + }, nil + +} + +// CreateClient creates the client +func (s *Server) CreateClient(ctx context.Context, req *request.CreateClient) (*response.CreateClient, error) { + err := validation.New(validation.Options{ + Target: "client", + Request: *req, + Rules: validation.Rules{ + "OrgId": []string{"required"}, + "ServerId": []string{"required"}, + "Name": []string{"required"}, + }, + }).Validate() + + if err != nil { + return nil, err + } + + c, err := s.createClient(ctx, req.OrgId, req.ServerId) + if err != nil { + return nil, err + } + + res, err := c.client.Clients.Create(chef.ApiNewClient{ + Name: req.Name, + Validator: req.Validator, + CreateKey: req.CreateKey, + }) + if err != nil { + return nil, ParseAPIError(err) + } + + return &response.CreateClient{ + Name: req.Name, + ClientKey: &response.ClientKey{ + Name: res.ChefKey.Name, + PublicKey: res.ChefKey.PublicKey, + ExpirationDate: res.ChefKey.ExpirationDate, + PrivateKey: res.ChefKey.PrivateKey, + }, + }, nil + +} + +// DeleteClient deletes the client +func (s *Server) DeleteClient(ctx context.Context, req *request.Client) (*response.Client, error) { + err := validation.New(validation.Options{ + Target: "client", + Request: *req, + RequiredDefault: true, + }).Validate() + + if err != nil { + return nil, err + } + + c, err := s.createClient(ctx, req.OrgId, req.ServerId) + if err != nil { + return nil, err + } + + err = c.client.Clients.Delete(req.Name) + if err != nil { + return nil, ParseAPIError(err) + } + + return &response.Client{ + Name: req.Name, + }, nil + +} + +// ResetClientKey resets the client key +// Deletes the associated key pair and generates new key pair again, and then attaches it to the client. +func (s *Server) ResetClientKey(ctx context.Context, req *request.ClientKey) (*response.ClientKey, error) { + err := validation.New(validation.Options{ + Target: "client", + Request: *req, + Rules: validation.Rules{ + "OrgId": []string{"required"}, + "ServerId": []string{"required"}, + "Name": []string{"required"}, + }, + }).Validate() + + if err != nil { + return nil, err + } + + c, err := s.createClient(ctx, req.OrgId, req.ServerId) + if err != nil { + return nil, err + } + + key := req.Key + + if key == "" { + key = "default" + } + + // Deletes the existing key + _, err = c.client.Clients.DeleteKey(req.Name, key) + chefError, _ := chef.ChefError(err) + if err != nil && chefError.StatusCode() != 404 { + return nil, ParseAPIError(err) + } + + // Add new key to existing client + body, err := chef.JSONReader(AccessKeyReq{ + Name: key, + ExpirationDate: "infinity", + CreateKey: true, + }) + + var chefKey chef.ChefKey + addReq, err := c.client.NewRequest("POST", fmt.Sprintf("clients/%s/keys", req.Name), body) + res, err := c.client.Do(addReq, &chefKey) + if res != nil { + defer res.Body.Close() + } + + if err != nil { + return nil, ParseAPIError(err) + } + + return &response.ClientKey{ + Name: key, + PrivateKey: chefKey.PrivateKey, }, nil } From ff4400e160319d2dcae8a0f7f6339dc6fa622332 Mon Sep 17 00:00:00 2001 From: "chef-expeditor[bot]" <49165653+chef-expeditor[bot]@users.noreply.github.com> Date: Thu, 11 Feb 2021 21:17:34 +0530 Subject: [PATCH 19/34] Bump automate-compliance-profiles (#4694) This pull request was triggered automatically via Expeditor. This change falls under the obvious fix policy so no Developer Certificate of Origin (DCO) sign-off is required. Co-authored-by: Chef Expeditor --- components/compliance-service/habitat/plan.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/compliance-service/habitat/plan.sh b/components/compliance-service/habitat/plan.sh index b1550d2db34..9918cbac959 100644 --- a/components/compliance-service/habitat/plan.sh +++ b/components/compliance-service/habitat/plan.sh @@ -46,7 +46,7 @@ else # WARNING: chef/automate-compliance-profiles is managed by Expeditor # See .expeditor/update-compliance-profiles.sh for details pkg_deps+=( - chef/automate-compliance-profiles/1.0.0/20210113170230 + chef/automate-compliance-profiles/1.0.0/20210210220805 ) fi From 566e07769a8799c759e32187e768e93cea72afd6 Mon Sep 17 00:00:00 2001 From: Vivek Singh Date: Thu, 11 Feb 2021 21:32:08 +0530 Subject: [PATCH 20/34] [infra-proxy-service] Client list using search API (#4660) * client list using search API Signed-off-by: Vivek Singh * default rows count if not provided Signed-off-by: Vivek Singh * Use search query interface Signed-off-by: Vivek Singh * fixes tabs to spaces Signed-off-by: Vivek Singh * tabs to spaces Signed-off-by: Vivek Singh * Renamed start & rows with page and per_page search params Signed-off-by: Vivek Singh * remove untracked file pushed Signed-off-by: Vivek Singh * Added client list search test cases Signed-off-by: Vivek Singh * proto comments update Signed-off-by: Vivek Singh * minor updates Signed-off-by: Vivek Singh * proto changes Signed-off-by: Vivek Singh --- api/external/infra_proxy/infra_proxy.pb.gw.go | 18 ++ .../infra_proxy/infra_proxy.swagger.json | 52 ++++++ .../infra_proxy/request/clients.pb.go | 90 +++++---- .../infra_proxy/request/clients.proto | 4 + api/external/infra_proxy/request/common.pb.go | 175 ++++++++++++++++++ api/external/infra_proxy/request/common.proto | 13 ++ .../infra_proxy/response/clients.pb.go | 127 +++++++------ .../infra_proxy/response/clients.proto | 5 + .../infra_proxy/request/clients.pb.go | 86 +++++---- .../infra_proxy/request/clients.proto | 4 + .../infra_proxy/request/common.pb.go | 175 ++++++++++++++++++ .../infra_proxy/request/common.proto | 14 ++ .../infra_proxy/response/clients.pb.go | 127 +++++++------ .../infra_proxy/response/clients.proto | 4 + .../api/infra_proxy.pb.swagger.go | 52 ++++++ .../handler/infra_proxy/clients.go | 8 +- .../infra_proxy/infra_proxy.swagger.json | 52 ++++++ .../integration_test/clients_test.go | 86 ++++++++- .../infra-proxy-service/server/clients.go | 46 +++-- .../infra/chef-repo/clients/chef-load-3.json | 7 + .../infra/chef-repo/clients/chef-load-4.json | 7 + .../infra/chef-repo/clients/chef-load-5.json | 7 + .../infra/chef-repo/clients/chef-load-6.json | 7 + .../infra/chef-repo/clients/chef-load-7.json | 7 + .../infra/chef-repo/clients/chef-load-8.json | 7 + .../infra/chef-repo/clients/chef-load-9.json | 7 + 26 files changed, 992 insertions(+), 195 deletions(-) create mode 100644 api/external/infra_proxy/request/common.pb.go create mode 100644 api/external/infra_proxy/request/common.proto create mode 100644 api/interservice/infra_proxy/request/common.pb.go create mode 100644 api/interservice/infra_proxy/request/common.proto create mode 100644 dev-docs/adding-data/infra/chef-repo/clients/chef-load-3.json create mode 100644 dev-docs/adding-data/infra/chef-repo/clients/chef-load-4.json create mode 100644 dev-docs/adding-data/infra/chef-repo/clients/chef-load-5.json create mode 100644 dev-docs/adding-data/infra/chef-repo/clients/chef-load-6.json create mode 100644 dev-docs/adding-data/infra/chef-repo/clients/chef-load-7.json create mode 100644 dev-docs/adding-data/infra/chef-repo/clients/chef-load-8.json create mode 100644 dev-docs/adding-data/infra/chef-repo/clients/chef-load-9.json diff --git a/api/external/infra_proxy/infra_proxy.pb.gw.go b/api/external/infra_proxy/infra_proxy.pb.gw.go index 3a9d076708d..9e924333ceb 100644 --- a/api/external/infra_proxy/infra_proxy.pb.gw.go +++ b/api/external/infra_proxy/infra_proxy.pb.gw.go @@ -1632,6 +1632,10 @@ func local_request_InfraProxy_UpdateRole_0(ctx context.Context, marshaler runtim } +var ( + filter_InfraProxy_GetClients_0 = &utilities.DoubleArray{Encoding: map[string]int{"server_id": 0, "org_id": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + func request_InfraProxy_GetClients_0(ctx context.Context, marshaler runtime.Marshaler, client InfraProxyClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq request.Clients var metadata runtime.ServerMetadata @@ -1665,6 +1669,13 @@ func request_InfraProxy_GetClients_0(ctx context.Context, marshaler runtime.Mars return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_InfraProxy_GetClients_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := client.GetClients(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err @@ -1703,6 +1714,13 @@ func local_request_InfraProxy_GetClients_0(ctx context.Context, marshaler runtim return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_InfraProxy_GetClients_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.GetClients(ctx, &protoReq) return msg, metadata, err diff --git a/api/external/infra_proxy/infra_proxy.swagger.json b/api/external/infra_proxy/infra_proxy.swagger.json index e6f5728b793..19a7d9531a8 100644 --- a/api/external/infra_proxy/infra_proxy.swagger.json +++ b/api/external/infra_proxy/infra_proxy.swagger.json @@ -482,6 +482,29 @@ "in": "path", "required": true, "type": "string" + }, + { + "name": "search_query.q", + "description": "The search query used to identify a list of items.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "search_query.page", + "description": "Starting page for the results.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "search_query.per_page", + "description": "The number of results on each page.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], "tags": [ @@ -2183,6 +2206,25 @@ } } }, + "chef.automate.api.infra_proxy.request.SearchQuery": { + "type": "object", + "properties": { + "q": { + "type": "string", + "description": "The search query used to identify a list of items." + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Starting page for the results." + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "The number of results on each page." + } + } + }, "chef.automate.api.infra_proxy.request.UpdateDataBagItem": { "type": "object", "properties": { @@ -2494,6 +2536,16 @@ "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientListItem" }, "description": "Client list." + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Starting page for the results." + }, + "total": { + "type": "integer", + "format": "int32", + "description": "Total number of records." } } }, diff --git a/api/external/infra_proxy/request/clients.pb.go b/api/external/infra_proxy/request/clients.pb.go index 33ba6346e00..13773dd7efa 100644 --- a/api/external/infra_proxy/request/clients.pb.go +++ b/api/external/infra_proxy/request/clients.pb.go @@ -34,6 +34,8 @@ type Clients struct { OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` // Chef Infra Server ID. ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` + // Clients search query. + SearchQuery *SearchQuery `protobuf:"bytes,3,opt,name=search_query,json=searchQuery,proto3" json:"search_query,omitempty"` } func (x *Clients) Reset() { @@ -82,6 +84,13 @@ func (x *Clients) GetServerId() string { return "" } +func (x *Clients) GetSearchQuery() *SearchQuery { + if x != nil { + return x.SearchQuery + } + return nil +} + type Client struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -315,36 +324,44 @@ var file_external_infra_proxy_request_clients_proto_rawDesc = []byte{ 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x07, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x15, - 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x49, 0x64, 0x22, 0x50, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, - 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, - 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x65, 0x0a, 0x09, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x74, 0x1a, 0x29, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x94, + 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, + 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x55, + 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0x50, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, + 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x65, 0x0a, + 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, + 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -365,13 +382,15 @@ var file_external_infra_proxy_request_clients_proto_goTypes = []interface{}{ (*Client)(nil), // 1: chef.automate.api.infra_proxy.request.Client (*CreateClient)(nil), // 2: chef.automate.api.infra_proxy.request.CreateClient (*ClientKey)(nil), // 3: chef.automate.api.infra_proxy.request.ClientKey + (*SearchQuery)(nil), // 4: chef.automate.api.infra_proxy.request.SearchQuery } var file_external_infra_proxy_request_clients_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name + 4, // 0: chef.automate.api.infra_proxy.request.Clients.search_query:type_name -> chef.automate.api.infra_proxy.request.SearchQuery + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name } func init() { file_external_infra_proxy_request_clients_proto_init() } @@ -379,6 +398,7 @@ func file_external_infra_proxy_request_clients_proto_init() { if File_external_infra_proxy_request_clients_proto != nil { return } + file_external_infra_proxy_request_common_proto_init() if !protoimpl.UnsafeEnabled { file_external_infra_proxy_request_clients_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Clients); i { diff --git a/api/external/infra_proxy/request/clients.proto b/api/external/infra_proxy/request/clients.proto index fe94436a11f..07bd679604b 100644 --- a/api/external/infra_proxy/request/clients.proto +++ b/api/external/infra_proxy/request/clients.proto @@ -3,11 +3,15 @@ syntax = "proto3"; package chef.automate.api.infra_proxy.request; option go_package = "github.com/chef/automate/api/external/infra_proxy/request"; +import "external/infra_proxy/request/common.proto"; + message Clients { // Chef organization ID. string org_id = 1; // Chef Infra Server ID. string server_id = 2; + // Clients search query. + SearchQuery search_query = 3; } message Client { diff --git a/api/external/infra_proxy/request/common.pb.go b/api/external/infra_proxy/request/common.pb.go new file mode 100644 index 00000000000..8cf8565ea78 --- /dev/null +++ b/api/external/infra_proxy/request/common.pb.go @@ -0,0 +1,175 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: external/infra_proxy/request/common.proto + +package request + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type SearchQuery struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The search query used to identify a list of items. + Q string `protobuf:"bytes,1,opt,name=q,proto3" json:"q,omitempty"` + // Starting page for the results. + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + // The number of results on each page. + PerPage int32 `protobuf:"varint,3,opt,name=per_page,json=perPage,proto3" json:"per_page,omitempty"` +} + +func (x *SearchQuery) Reset() { + *x = SearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_external_infra_proxy_request_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchQuery) ProtoMessage() {} + +func (x *SearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_external_infra_proxy_request_common_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchQuery.ProtoReflect.Descriptor instead. +func (*SearchQuery) Descriptor() ([]byte, []int) { + return file_external_infra_proxy_request_common_proto_rawDescGZIP(), []int{0} +} + +func (x *SearchQuery) GetQ() string { + if x != nil { + return x.Q + } + return "" +} + +func (x *SearchQuery) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *SearchQuery) GetPerPage() int32 { + if x != nil { + return x.PerPage + } + return 0 +} + +var File_external_infra_proxy_request_common_proto protoreflect.FileDescriptor + +var file_external_infra_proxy_request_common_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x4a, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x71, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x42, 0x3b, + 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, + 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, + 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_external_infra_proxy_request_common_proto_rawDescOnce sync.Once + file_external_infra_proxy_request_common_proto_rawDescData = file_external_infra_proxy_request_common_proto_rawDesc +) + +func file_external_infra_proxy_request_common_proto_rawDescGZIP() []byte { + file_external_infra_proxy_request_common_proto_rawDescOnce.Do(func() { + file_external_infra_proxy_request_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_external_infra_proxy_request_common_proto_rawDescData) + }) + return file_external_infra_proxy_request_common_proto_rawDescData +} + +var file_external_infra_proxy_request_common_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_external_infra_proxy_request_common_proto_goTypes = []interface{}{ + (*SearchQuery)(nil), // 0: chef.automate.api.infra_proxy.request.SearchQuery +} +var file_external_infra_proxy_request_common_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_external_infra_proxy_request_common_proto_init() } +func file_external_infra_proxy_request_common_proto_init() { + if File_external_infra_proxy_request_common_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_external_infra_proxy_request_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_external_infra_proxy_request_common_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_external_infra_proxy_request_common_proto_goTypes, + DependencyIndexes: file_external_infra_proxy_request_common_proto_depIdxs, + MessageInfos: file_external_infra_proxy_request_common_proto_msgTypes, + }.Build() + File_external_infra_proxy_request_common_proto = out.File + file_external_infra_proxy_request_common_proto_rawDesc = nil + file_external_infra_proxy_request_common_proto_goTypes = nil + file_external_infra_proxy_request_common_proto_depIdxs = nil +} diff --git a/api/external/infra_proxy/request/common.proto b/api/external/infra_proxy/request/common.proto new file mode 100644 index 00000000000..2182706bedc --- /dev/null +++ b/api/external/infra_proxy/request/common.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; + +package chef.automate.api.infra_proxy.request; +option go_package = "github.com/chef/automate/api/external/infra_proxy/request"; + +message SearchQuery { + // The search query used to identify a list of items. + string q = 1; + // Starting page for the results. + int32 page = 2; + // The number of results on each page. + int32 per_page = 3; +} diff --git a/api/external/infra_proxy/response/clients.pb.go b/api/external/infra_proxy/response/clients.pb.go index dd4c9900d62..da51006267a 100644 --- a/api/external/infra_proxy/response/clients.pb.go +++ b/api/external/infra_proxy/response/clients.pb.go @@ -32,6 +32,10 @@ type Clients struct { // Client list. Clients []*ClientListItem `protobuf:"bytes,1,rep,name=clients,proto3" json:"clients,omitempty"` + // Starting page for the results. + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + // Total number of records. + Total int32 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"` } func (x *Clients) Reset() { @@ -73,6 +77,20 @@ func (x *Clients) GetClients() []*ClientListItem { return nil } +func (x *Clients) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *Clients) GetTotal() int32 { + if x != nil { + return x.Total + } + return 0 +} + type ClientListItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -429,59 +447,62 @@ var file_external_infra_proxy_response_clients_proto_rawDesc = []byte{ 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x26, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x07, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x50, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x73, 0x22, 0x24, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8a, 0x02, 0x0a, 0x06, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, - 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x74, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, - 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, - 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x09, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x6d, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x65, 0x42, 0x3c, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x50, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x24, 0x0a, + 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x8a, 0x02, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, + 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, + 0x68, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, + 0x22, 0x74, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x22, 0x6d, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, + 0x42, 0x3c, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/external/infra_proxy/response/clients.proto b/api/external/infra_proxy/response/clients.proto index 5525d405acd..37240e5b5d2 100644 --- a/api/external/infra_proxy/response/clients.proto +++ b/api/external/infra_proxy/response/clients.proto @@ -3,9 +3,14 @@ syntax = "proto3"; package chef.automate.api.infra_proxy.response; option go_package = "github.com/chef/automate/api/external/infra_proxy/response"; + message Clients { // Client list. repeated ClientListItem clients = 1; + // Starting page for the results. + int32 page = 2; + // Total number of records. + int32 total = 3; } message ClientListItem { diff --git a/api/interservice/infra_proxy/request/clients.pb.go b/api/interservice/infra_proxy/request/clients.pb.go index 7a287f91200..d83d83e1f71 100644 --- a/api/interservice/infra_proxy/request/clients.pb.go +++ b/api/interservice/infra_proxy/request/clients.pb.go @@ -34,6 +34,8 @@ type Clients struct { OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty" toml:"org_id,omitempty" mapstructure:"org_id,omitempty"` // Chef Infra Server ID. ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty" toml:"server_id,omitempty" mapstructure:"server_id,omitempty"` + // Clients search query. + SearchQuery *SearchQuery `protobuf:"bytes,3,opt,name=search_query,json=searchQuery,proto3" json:"search_query,omitempty" toml:"search_query,omitempty" mapstructure:"search_query,omitempty"` } func (x *Clients) Reset() { @@ -82,6 +84,13 @@ func (x *Clients) GetServerId() string { return "" } +func (x *Clients) GetSearchQuery() *SearchQuery { + if x != nil { + return x.SearchQuery + } + return nil +} + type Client struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -315,37 +324,45 @@ var file_interservice_infra_proxy_request_clients_proto_rawDesc = []byte{ 0x73, 0x74, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x28, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x07, 0x43, 0x6c, + 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x06, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0c, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, - 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, - 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x22, 0x65, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x15, - 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x58, 0x0a, 0x0c, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x22, 0x50, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, + 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, + 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, + 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x65, 0x0a, 0x09, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -366,13 +383,15 @@ var file_interservice_infra_proxy_request_clients_proto_goTypes = []interface{}{ (*Client)(nil), // 1: chef.automate.domain.infra_proxy.request.Client (*CreateClient)(nil), // 2: chef.automate.domain.infra_proxy.request.CreateClient (*ClientKey)(nil), // 3: chef.automate.domain.infra_proxy.request.ClientKey + (*SearchQuery)(nil), // 4: chef.automate.domain.infra_proxy.request.SearchQuery } var file_interservice_infra_proxy_request_clients_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name + 4, // 0: chef.automate.domain.infra_proxy.request.Clients.search_query:type_name -> chef.automate.domain.infra_proxy.request.SearchQuery + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name } func init() { file_interservice_infra_proxy_request_clients_proto_init() } @@ -380,6 +399,7 @@ func file_interservice_infra_proxy_request_clients_proto_init() { if File_interservice_infra_proxy_request_clients_proto != nil { return } + file_interservice_infra_proxy_request_common_proto_init() if !protoimpl.UnsafeEnabled { file_interservice_infra_proxy_request_clients_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Clients); i { diff --git a/api/interservice/infra_proxy/request/clients.proto b/api/interservice/infra_proxy/request/clients.proto index a587e0f631d..da12cf6ceda 100644 --- a/api/interservice/infra_proxy/request/clients.proto +++ b/api/interservice/infra_proxy/request/clients.proto @@ -3,11 +3,15 @@ syntax = "proto3"; package chef.automate.domain.infra_proxy.request; option go_package = "github.com/chef/automate/api/interservice/infra_proxy/request"; +import "interservice/infra_proxy/request/common.proto"; + message Clients { // Chef organization ID. string org_id = 1; // Chef Infra Server ID. string server_id = 2; + // Clients search query. + SearchQuery search_query = 3; } message Client { diff --git a/api/interservice/infra_proxy/request/common.pb.go b/api/interservice/infra_proxy/request/common.pb.go new file mode 100644 index 00000000000..8bfa490a8af --- /dev/null +++ b/api/interservice/infra_proxy/request/common.pb.go @@ -0,0 +1,175 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: interservice/infra_proxy/request/common.proto + +package request + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type SearchQuery struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The search query used to identify a list of items. + Q string `protobuf:"bytes,1,opt,name=q,proto3" json:"q,omitempty" toml:"q,omitempty" mapstructure:"q,omitempty"` + // Starting page for the results. + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty" toml:"page,omitempty" mapstructure:"page,omitempty"` + // The number of results on each page. + PerPage int32 `protobuf:"varint,3,opt,name=per_page,json=perPage,proto3" json:"per_page,omitempty" toml:"per_page,omitempty" mapstructure:"per_page,omitempty"` +} + +func (x *SearchQuery) Reset() { + *x = SearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_interservice_infra_proxy_request_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchQuery) ProtoMessage() {} + +func (x *SearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_interservice_infra_proxy_request_common_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchQuery.ProtoReflect.Descriptor instead. +func (*SearchQuery) Descriptor() ([]byte, []int) { + return file_interservice_infra_proxy_request_common_proto_rawDescGZIP(), []int{0} +} + +func (x *SearchQuery) GetQ() string { + if x != nil { + return x.Q + } + return "" +} + +func (x *SearchQuery) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *SearchQuery) GetPerPage() int32 { + if x != nil { + return x.PerPage + } + return 0 +} + +var File_interservice_infra_proxy_request_common_proto protoreflect.FileDescriptor + +var file_interservice_infra_proxy_request_common_proto_rawDesc = []byte{ + 0x0a, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x28, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4a, 0x0a, 0x0b, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x71, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x01, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, + 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x65, + 0x72, 0x50, 0x61, 0x67, 0x65, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_interservice_infra_proxy_request_common_proto_rawDescOnce sync.Once + file_interservice_infra_proxy_request_common_proto_rawDescData = file_interservice_infra_proxy_request_common_proto_rawDesc +) + +func file_interservice_infra_proxy_request_common_proto_rawDescGZIP() []byte { + file_interservice_infra_proxy_request_common_proto_rawDescOnce.Do(func() { + file_interservice_infra_proxy_request_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_interservice_infra_proxy_request_common_proto_rawDescData) + }) + return file_interservice_infra_proxy_request_common_proto_rawDescData +} + +var file_interservice_infra_proxy_request_common_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_interservice_infra_proxy_request_common_proto_goTypes = []interface{}{ + (*SearchQuery)(nil), // 0: chef.automate.domain.infra_proxy.request.SearchQuery +} +var file_interservice_infra_proxy_request_common_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_interservice_infra_proxy_request_common_proto_init() } +func file_interservice_infra_proxy_request_common_proto_init() { + if File_interservice_infra_proxy_request_common_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_interservice_infra_proxy_request_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_interservice_infra_proxy_request_common_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_interservice_infra_proxy_request_common_proto_goTypes, + DependencyIndexes: file_interservice_infra_proxy_request_common_proto_depIdxs, + MessageInfos: file_interservice_infra_proxy_request_common_proto_msgTypes, + }.Build() + File_interservice_infra_proxy_request_common_proto = out.File + file_interservice_infra_proxy_request_common_proto_rawDesc = nil + file_interservice_infra_proxy_request_common_proto_goTypes = nil + file_interservice_infra_proxy_request_common_proto_depIdxs = nil +} diff --git a/api/interservice/infra_proxy/request/common.proto b/api/interservice/infra_proxy/request/common.proto new file mode 100644 index 00000000000..c0dd3a4919e --- /dev/null +++ b/api/interservice/infra_proxy/request/common.proto @@ -0,0 +1,14 @@ + +syntax = "proto3"; + +package chef.automate.domain.infra_proxy.request; +option go_package = "github.com/chef/automate/api/interservice/infra_proxy/request"; + +message SearchQuery { + // The search query used to identify a list of items. + string q = 1; + // Starting page for the results. + int32 page = 2; + // The number of results on each page. + int32 per_page = 3; +} diff --git a/api/interservice/infra_proxy/response/clients.pb.go b/api/interservice/infra_proxy/response/clients.pb.go index 5546bba2f03..bc33d6c9251 100644 --- a/api/interservice/infra_proxy/response/clients.pb.go +++ b/api/interservice/infra_proxy/response/clients.pb.go @@ -32,6 +32,10 @@ type Clients struct { // Client list. Clients []*ClientListItem `protobuf:"bytes,1,rep,name=clients,proto3" json:"clients,omitempty" toml:"clients,omitempty" mapstructure:"clients,omitempty"` + // Starting page for the results. + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty" toml:"page,omitempty" mapstructure:"page,omitempty"` + // Total number of records. + Total int32 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty" toml:"total,omitempty" mapstructure:"total,omitempty"` } func (x *Clients) Reset() { @@ -73,6 +77,20 @@ func (x *Clients) GetClients() []*ClientListItem { return nil } +func (x *Clients) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *Clients) GetTotal() int32 { + if x != nil { + return x.Total + } + return 0 +} + type ClientListItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -429,60 +447,63 @@ var file_interservice_infra_proxy_response_clients_proto_rawDesc = []byte{ 0x6e, 0x73, 0x65, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x0a, 0x07, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x53, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, - 0x74, 0x65, 0x6d, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x24, 0x0a, 0x0e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x8d, 0x02, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, + 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x0a, + 0x07, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x53, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x24, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8d, 0x02, + 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x66, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65, 0x66, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x59, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, + 0x65, 0x79, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x77, 0x0a, + 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, - 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, - 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, - 0x65, 0x79, 0x22, 0x77, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x68, 0x65, - 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, - 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x09, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x6d, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x65, 0x42, 0x40, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x22, 0x6d, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, + 0x42, 0x40, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/interservice/infra_proxy/response/clients.proto b/api/interservice/infra_proxy/response/clients.proto index 106677747af..2c34312443c 100644 --- a/api/interservice/infra_proxy/response/clients.proto +++ b/api/interservice/infra_proxy/response/clients.proto @@ -6,6 +6,10 @@ option go_package = "github.com/chef/automate/api/interservice/infra_proxy/respo message Clients { // Client list. repeated ClientListItem clients = 1; + // Starting page for the results. + int32 page = 2; + // Total number of records. + int32 total = 3; } message ClientListItem { diff --git a/components/automate-gateway/api/infra_proxy.pb.swagger.go b/components/automate-gateway/api/infra_proxy.pb.swagger.go index f8b40ff52dc..3bb7fa5bc12 100644 --- a/components/automate-gateway/api/infra_proxy.pb.swagger.go +++ b/components/automate-gateway/api/infra_proxy.pb.swagger.go @@ -485,6 +485,29 @@ func init() { "in": "path", "required": true, "type": "string" + }, + { + "name": "search_query.q", + "description": "The search query used to identify a list of items.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "search_query.page", + "description": "Starting page for the results.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "search_query.per_page", + "description": "The number of results on each page.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], "tags": [ @@ -2186,6 +2209,25 @@ func init() { } } }, + "chef.automate.api.infra_proxy.request.SearchQuery": { + "type": "object", + "properties": { + "q": { + "type": "string", + "description": "The search query used to identify a list of items." + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Starting page for the results." + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "The number of results on each page." + } + } + }, "chef.automate.api.infra_proxy.request.UpdateDataBagItem": { "type": "object", "properties": { @@ -2497,6 +2539,16 @@ func init() { "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientListItem" }, "description": "Client list." + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Starting page for the results." + }, + "total": { + "type": "integer", + "format": "int32", + "description": "Total number of records." } } }, diff --git a/components/automate-gateway/handler/infra_proxy/clients.go b/components/automate-gateway/handler/infra_proxy/clients.go index 9b0751a97e4..0acaa0a55d4 100644 --- a/components/automate-gateway/handler/infra_proxy/clients.go +++ b/components/automate-gateway/handler/infra_proxy/clients.go @@ -14,6 +14,11 @@ func (a *InfraProxyServer) GetClients(ctx context.Context, r *gwreq.Clients) (*g req := &infra_req.Clients{ OrgId: r.OrgId, ServerId: r.ServerId, + SearchQuery: &infra_req.SearchQuery{ + Q: r.GetSearchQuery().GetQ(), + Page: r.GetSearchQuery().GetPage(), + PerPage: r.GetSearchQuery().GetPerPage(), + }, } res, err := a.client.GetClients(ctx, req) if err != nil { @@ -22,6 +27,8 @@ func (a *InfraProxyServer) GetClients(ctx context.Context, r *gwreq.Clients) (*g return &gwres.Clients{ Clients: fromUpstreamClients(res.Clients), + Page: res.GetPage(), + Total: res.GetTotal(), }, nil } @@ -116,7 +123,6 @@ func (a *InfraProxyServer) ResetClientKey(ctx context.Context, r *gwreq.ClientKe func fromUpstreamClients(clients []*infra_res.ClientListItem) []*gwres.ClientListItem { ts := make([]*gwres.ClientListItem, len(clients)) - for i, c := range clients { ts[i] = &gwres.ClientListItem{ Name: c.GetName(), diff --git a/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json b/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json index e6f5728b793..19a7d9531a8 100644 --- a/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json +++ b/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json @@ -482,6 +482,29 @@ "in": "path", "required": true, "type": "string" + }, + { + "name": "search_query.q", + "description": "The search query used to identify a list of items.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "search_query.page", + "description": "Starting page for the results.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "search_query.per_page", + "description": "The number of results on each page.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], "tags": [ @@ -2183,6 +2206,25 @@ } } }, + "chef.automate.api.infra_proxy.request.SearchQuery": { + "type": "object", + "properties": { + "q": { + "type": "string", + "description": "The search query used to identify a list of items." + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Starting page for the results." + }, + "per_page": { + "type": "integer", + "format": "int32", + "description": "The number of results on each page." + } + } + }, "chef.automate.api.infra_proxy.request.UpdateDataBagItem": { "type": "object", "properties": { @@ -2494,6 +2536,16 @@ "$ref": "#/definitions/chef.automate.api.infra_proxy.response.ClientListItem" }, "description": "Client list." + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Starting page for the results." + }, + "total": { + "type": "integer", + "format": "int32", + "description": "Total number of records." } } }, diff --git a/components/infra-proxy-service/integration_test/clients_test.go b/components/infra-proxy-service/integration_test/clients_test.go index 767bb5d8100..5e8792591d5 100644 --- a/components/infra-proxy-service/integration_test/clients_test.go +++ b/components/infra-proxy-service/integration_test/clients_test.go @@ -9,16 +9,94 @@ import ( ) func TestGetClients(t *testing.T) { + // Pre-populated that has been added by scripts + // Validating the clients search based on these records. // rpc GetClients (request.Clients) returns (response.Clients) ctx := context.Background() req := &request.Clients{ ServerId: autoDeployedChefServerID, OrgId: autoDeployedChefOrganizationID, } - res, err := infraProxy.GetClients(ctx, req) - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, 3, len(res.GetClients())) + + t.Run("Clients list without a search params", func(t *testing.T) { + // Default per_page 1000 is set in backend + perPage := int32(1000) + res, err := infraProxy.GetClients(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, int(res.Page), 0) + if res.Total <= perPage { + assert.Equal(t, int(res.Total), len(res.Clients)) + } else { + assert.Equal(t, perPage, len(res.Clients)) + } + }) + + t.Run("Clients list with a per_page search param", func(t *testing.T) { + req.SearchQuery = &request.SearchQuery{ + PerPage: 5, + } + res, err := infraProxy.GetClients(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, 0, int(res.Page)) + assert.Equal(t, 5, len(res.Clients)) + }) + + t.Run("Clients list with a page search param", func(t *testing.T) { + req.SearchQuery = &request.SearchQuery{ + Q: "*:*", + Page: 1, + PerPage: 5, + } + res, err := infraProxy.GetClients(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, 1, int(res.Page)) + assert.Equal(t, 5, len(res.Clients)) + }) + + t.Run("Clients list with an invalid query search param", func(t *testing.T) { + req.SearchQuery = &request.SearchQuery{ + Q: "NO_KEY:NO_VALUE", + Page: 0, + PerPage: 5, + } + res, err := infraProxy.GetClients(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, 0, int(res.Page)) + assert.Equal(t, 0, int(res.Total)) + assert.Equal(t, 0, len(res.Clients)) + }) + + t.Run("Clients list with an invalid query search param", func(t *testing.T) { + req.SearchQuery = &request.SearchQuery{ + Q: "INVALID_QUERY", + Page: 0, + PerPage: 5, + } + res, err := infraProxy.GetClients(ctx, req) + assert.NoError(t, err) + assert.Equal(t, 0, int(res.Page)) + assert.Equal(t, 0, int(res.Total)) + assert.Equal(t, 0, len(res.Clients)) + }) + + t.Run("Clients list with a valid query search param", func(t *testing.T) { + req.SearchQuery = &request.SearchQuery{ + Q: "name:chef-load-1", + Page: 0, + PerPage: 5, + } + res, err := infraProxy.GetClients(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, 0, int(res.Page)) + assert.Equal(t, 1, int(res.Total)) + assert.Equal(t, "chef-load-1", res.Clients[0].GetName()) + }) + } func TestGetClient(t *testing.T) { diff --git a/components/infra-proxy-service/server/clients.go b/components/infra-proxy-service/server/clients.go index 9b6a30ef7c2..145c6a9bac9 100644 --- a/components/infra-proxy-service/server/clients.go +++ b/components/infra-proxy-service/server/clients.go @@ -3,7 +3,6 @@ package server import ( "context" "fmt" - "sort" chef "github.com/go-chef/chef" @@ -20,24 +19,46 @@ type AccessKeyReq struct { CreateKey bool `json:"create_key,omitempty"` } -// GetClients get clients list +// GetClients gets clients list func (s *Server) GetClients(ctx context.Context, req *request.Clients) (*response.Clients, error) { c, err := s.createClient(ctx, req.OrgId, req.ServerId) if err != nil { return nil, err } - clients, err := c.client.Clients.List() + perPage := int(req.GetSearchQuery().GetPerPage()) + if perPage == 0 { + perPage = 1000 + } + + searchStr := string(req.GetSearchQuery().GetQ()) + if searchStr == "" { + searchStr = "*:*" + } + query, err := c.client.Search.NewQuery("client", searchStr) + query.Rows = perPage + + // Query accepts start param, The row at which return results begin. + query.Start = int(req.GetSearchQuery().GetPage()) * perPage + + res, err := query.Do(c.client) if err != nil { return nil, ParseAPIError(err) } + page := res.Start + if page != 0 { + page = page / perPage + } + return &response.Clients{ - Clients: fromAPIToListClients(clients), + Clients: fromAPIToListClients(res.Rows), + Page: int32(page), + Total: int32(res.Total), }, nil } -// GetClient gets the client +// GetClient gets client func (s *Server) GetClient(ctx context.Context, req *request.Client) (*response.Client, error) { c, err := s.createClient(ctx, req.OrgId, req.ServerId) if err != nil { @@ -203,21 +224,14 @@ func (s *Server) ResetClientKey(ctx context.Context, req *request.ClientKey) (*r } -// fromAPIToListClients a response.Clients from a struct of ClientList -func fromAPIToListClients(al chef.ApiClientListResult) []*response.ClientListItem { +// fromAPIToListClients a response ClientListItems from a result map interface +func fromAPIToListClients(al []interface{}) []*response.ClientListItem { cl := make([]*response.ClientListItem, len(al)) - - index := 0 - for c := range al { + for index, c := range al { cl[index] = &response.ClientListItem{ - Name: c, + Name: SafeStringFromMap(c.(map[string]interface{}), "name"), } - index++ } - sort.Slice(cl, func(i, j int) bool { - return cl[i].Name < cl[j].Name - }) - return cl } diff --git a/dev-docs/adding-data/infra/chef-repo/clients/chef-load-3.json b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-3.json new file mode 100644 index 00000000000..64deff3907f --- /dev/null +++ b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-3.json @@ -0,0 +1,7 @@ +{ + "name": "chef-load-3", + "validator": false, + "admin": false, + "chef_type": "client", + "create_key": false +} diff --git a/dev-docs/adding-data/infra/chef-repo/clients/chef-load-4.json b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-4.json new file mode 100644 index 00000000000..3b6e300ffad --- /dev/null +++ b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-4.json @@ -0,0 +1,7 @@ +{ + "name": "chef-load-4", + "validator": false, + "admin": false, + "chef_type": "client", + "create_key": false +} diff --git a/dev-docs/adding-data/infra/chef-repo/clients/chef-load-5.json b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-5.json new file mode 100644 index 00000000000..8ddcf60d38b --- /dev/null +++ b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-5.json @@ -0,0 +1,7 @@ +{ + "name": "chef-load-5", + "validator": false, + "admin": false, + "chef_type": "client", + "create_key": false +} diff --git a/dev-docs/adding-data/infra/chef-repo/clients/chef-load-6.json b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-6.json new file mode 100644 index 00000000000..7e3eddb1b35 --- /dev/null +++ b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-6.json @@ -0,0 +1,7 @@ +{ + "name": "chef-load-6", + "validator": false, + "admin": false, + "chef_type": "client", + "create_key": false +} diff --git a/dev-docs/adding-data/infra/chef-repo/clients/chef-load-7.json b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-7.json new file mode 100644 index 00000000000..b502b309248 --- /dev/null +++ b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-7.json @@ -0,0 +1,7 @@ +{ + "name": "chef-load-7", + "validator": false, + "admin": false, + "chef_type": "client", + "create_key": false +} diff --git a/dev-docs/adding-data/infra/chef-repo/clients/chef-load-8.json b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-8.json new file mode 100644 index 00000000000..0e981bd2f8d --- /dev/null +++ b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-8.json @@ -0,0 +1,7 @@ +{ + "name": "chef-load-8", + "validator": false, + "admin": false, + "chef_type": "client", + "create_key": false +} diff --git a/dev-docs/adding-data/infra/chef-repo/clients/chef-load-9.json b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-9.json new file mode 100644 index 00000000000..b709b73bfe7 --- /dev/null +++ b/dev-docs/adding-data/infra/chef-repo/clients/chef-load-9.json @@ -0,0 +1,7 @@ +{ + "name": "chef-load-9", + "validator": false, + "admin": false, + "chef_type": "client", + "create_key": false +} From e640b916f3be0825a88161d1235116eeb198cea3 Mon Sep 17 00:00:00 2001 From: Vivek Singh Date: Fri, 12 Feb 2021 10:58:11 +0530 Subject: [PATCH 21/34] [infra-proxy-service] Environments list using search API with pagination (#4659) * search environments using search API Signed-off-by: Vivek Singh * default per page records Signed-off-by: Vivek Singh * refactored the code and rename search params with perpage & page Signed-off-by: Vivek Singh * proto comments updates Signed-off-by: Vivek Singh * Added page to response object and environments test cases Signed-off-by: Vivek Singh * proto changes Signed-off-by: Vivek Singh * reuse common protobuff Signed-off-by: Vivek Singh --- api/external/infra_proxy/infra_proxy.pb.gw.go | 18 +++ .../infra_proxy/infra_proxy.swagger.json | 37 +++++ .../infra_proxy/request/environments.pb.go | 140 ++++++++++-------- .../infra_proxy/request/environments.proto | 3 + .../infra_proxy/response/environments.pb.go | 116 +++++++++------ .../infra_proxy/response/environments.proto | 6 + .../infra_proxy/request/environments.pb.go | 137 +++++++++-------- .../infra_proxy/request/environments.proto | 3 + .../infra_proxy/response/environments.pb.go | 120 +++++++++------ .../infra_proxy/response/environments.proto | 6 + .../api/infra_proxy.pb.swagger.go | 37 +++++ .../handler/infra_proxy/environments.go | 11 +- .../infra_proxy/infra_proxy.swagger.json | 37 +++++ .../integration_test/environments_test.go | 135 +++++++++++++++++ .../server/environments.go | 43 ++++-- 15 files changed, 629 insertions(+), 220 deletions(-) create mode 100644 components/infra-proxy-service/integration_test/environments_test.go diff --git a/api/external/infra_proxy/infra_proxy.pb.gw.go b/api/external/infra_proxy/infra_proxy.pb.gw.go index 9e924333ceb..7a023f9de89 100644 --- a/api/external/infra_proxy/infra_proxy.pb.gw.go +++ b/api/external/infra_proxy/infra_proxy.pb.gw.go @@ -2800,6 +2800,10 @@ func local_request_InfraProxy_UpdateDataBagItem_0(ctx context.Context, marshaler } +var ( + filter_InfraProxy_GetEnvironments_0 = &utilities.DoubleArray{Encoding: map[string]int{"server_id": 0, "org_id": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + func request_InfraProxy_GetEnvironments_0(ctx context.Context, marshaler runtime.Marshaler, client InfraProxyClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq request.Environments var metadata runtime.ServerMetadata @@ -2833,6 +2837,13 @@ func request_InfraProxy_GetEnvironments_0(ctx context.Context, marshaler runtime return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_InfraProxy_GetEnvironments_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := client.GetEnvironments(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err @@ -2871,6 +2882,13 @@ func local_request_InfraProxy_GetEnvironments_0(ctx context.Context, marshaler r return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org_id", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_InfraProxy_GetEnvironments_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.GetEnvironments(ctx, &protoReq) return msg, metadata, err diff --git a/api/external/infra_proxy/infra_proxy.swagger.json b/api/external/infra_proxy/infra_proxy.swagger.json index 19a7d9531a8..48387868bed 100644 --- a/api/external/infra_proxy/infra_proxy.swagger.json +++ b/api/external/infra_proxy/infra_proxy.swagger.json @@ -1226,6 +1226,29 @@ "in": "path", "required": true, "type": "string" + }, + { + "name": "search_query.q", + "description": "The search query used to identify a list of items.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "search_query.page", + "description": "Starting page for the results.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "search_query.per_page", + "description": "The number of results on each page.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], "tags": [ @@ -2951,6 +2974,10 @@ "name": { "type": "string", "description": "Environment name." + }, + "description": { + "type": "string", + "description": "Environment description." } } }, @@ -2975,6 +3002,16 @@ "$ref": "#/definitions/chef.automate.api.infra_proxy.response.EnvironmentListItem" }, "description": "Environments list." + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Starting page for the results." + }, + "total": { + "type": "integer", + "format": "int32", + "description": "Total number of records." } } }, diff --git a/api/external/infra_proxy/request/environments.pb.go b/api/external/infra_proxy/request/environments.pb.go index a9c5eb1aeec..4df3170aaae 100644 --- a/api/external/infra_proxy/request/environments.pb.go +++ b/api/external/infra_proxy/request/environments.pb.go @@ -35,6 +35,8 @@ type Environments struct { OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` // Chef Infra Server ID. ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` + // Environments search query. + SearchQuery *SearchQuery `protobuf:"bytes,3,opt,name=search_query,json=searchQuery,proto3" json:"search_query,omitempty"` } func (x *Environments) Reset() { @@ -83,6 +85,13 @@ func (x *Environments) GetServerId() string { return "" } +func (x *Environments) GetSearchQuery() *SearchQuery { + if x != nil { + return x.SearchQuery + } + return nil +} + type Environment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -381,48 +390,25 @@ var file_external_infra_proxy_request_environments_proto_rawDesc = []byte{ 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x42, 0x0a, 0x0c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x0b, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, - 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xf0, 0x03, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x12, 0x7b, 0x0a, 0x11, 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x63, 0x6f, 0x6f, - 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, - 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x13, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, - 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x12, 0x6f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, - 0x43, 0x0a, 0x15, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf0, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x99, 0x01, 0x0a, 0x0c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x55, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0x55, 0x0a, + 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, + 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, + 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf0, 0x03, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, @@ -436,7 +422,7 @@ var file_external_infra_proxy_request_environments_proto_rawDesc = []byte{ 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, @@ -453,11 +439,42 @@ var file_external_infra_proxy_request_environments_proto_rawDesc = []byte{ 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf0, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, + 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, + 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, + 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x7b, 0x0a, 0x11, 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, + 0x6f, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x4e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, + 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x10, 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x13, 0x6f, + 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x52, 0x12, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, + 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -480,20 +497,22 @@ var file_external_infra_proxy_request_environments_proto_goTypes = []interface{} (*UpdateEnvironment)(nil), // 3: chef.automate.api.infra_proxy.request.UpdateEnvironment nil, // 4: chef.automate.api.infra_proxy.request.CreateEnvironment.CookbookVersionsEntry nil, // 5: chef.automate.api.infra_proxy.request.UpdateEnvironment.CookbookVersionsEntry - (*_struct.Struct)(nil), // 6: google.protobuf.Struct + (*SearchQuery)(nil), // 6: chef.automate.api.infra_proxy.request.SearchQuery + (*_struct.Struct)(nil), // 7: google.protobuf.Struct } var file_external_infra_proxy_request_environments_proto_depIdxs = []int32{ - 4, // 0: chef.automate.api.infra_proxy.request.CreateEnvironment.cookbook_versions:type_name -> chef.automate.api.infra_proxy.request.CreateEnvironment.CookbookVersionsEntry - 6, // 1: chef.automate.api.infra_proxy.request.CreateEnvironment.default_attributes:type_name -> google.protobuf.Struct - 6, // 2: chef.automate.api.infra_proxy.request.CreateEnvironment.override_attributes:type_name -> google.protobuf.Struct - 5, // 3: chef.automate.api.infra_proxy.request.UpdateEnvironment.cookbook_versions:type_name -> chef.automate.api.infra_proxy.request.UpdateEnvironment.CookbookVersionsEntry - 6, // 4: chef.automate.api.infra_proxy.request.UpdateEnvironment.default_attributes:type_name -> google.protobuf.Struct - 6, // 5: chef.automate.api.infra_proxy.request.UpdateEnvironment.override_attributes:type_name -> google.protobuf.Struct - 6, // [6:6] is the sub-list for method output_type - 6, // [6:6] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 6, // 0: chef.automate.api.infra_proxy.request.Environments.search_query:type_name -> chef.automate.api.infra_proxy.request.SearchQuery + 4, // 1: chef.automate.api.infra_proxy.request.CreateEnvironment.cookbook_versions:type_name -> chef.automate.api.infra_proxy.request.CreateEnvironment.CookbookVersionsEntry + 7, // 2: chef.automate.api.infra_proxy.request.CreateEnvironment.default_attributes:type_name -> google.protobuf.Struct + 7, // 3: chef.automate.api.infra_proxy.request.CreateEnvironment.override_attributes:type_name -> google.protobuf.Struct + 5, // 4: chef.automate.api.infra_proxy.request.UpdateEnvironment.cookbook_versions:type_name -> chef.automate.api.infra_proxy.request.UpdateEnvironment.CookbookVersionsEntry + 7, // 5: chef.automate.api.infra_proxy.request.UpdateEnvironment.default_attributes:type_name -> google.protobuf.Struct + 7, // 6: chef.automate.api.infra_proxy.request.UpdateEnvironment.override_attributes:type_name -> google.protobuf.Struct + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_external_infra_proxy_request_environments_proto_init() } @@ -501,6 +520,7 @@ func file_external_infra_proxy_request_environments_proto_init() { if File_external_infra_proxy_request_environments_proto != nil { return } + file_external_infra_proxy_request_common_proto_init() if !protoimpl.UnsafeEnabled { file_external_infra_proxy_request_environments_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Environments); i { diff --git a/api/external/infra_proxy/request/environments.proto b/api/external/infra_proxy/request/environments.proto index c423a13fbdc..1f1d17263e1 100644 --- a/api/external/infra_proxy/request/environments.proto +++ b/api/external/infra_proxy/request/environments.proto @@ -4,12 +4,15 @@ package chef.automate.api.infra_proxy.request; option go_package = "github.com/chef/automate/api/external/infra_proxy/request"; import "google/protobuf/struct.proto"; +import "external/infra_proxy/request/common.proto"; message Environments { // Chef organization ID. string org_id = 1; // Chef Infra Server ID. string server_id = 2; + // Environments search query. + SearchQuery search_query = 3; } message Environment { diff --git a/api/external/infra_proxy/response/environments.pb.go b/api/external/infra_proxy/response/environments.pb.go index 257ffd4d96e..ba81d0738c4 100644 --- a/api/external/infra_proxy/response/environments.pb.go +++ b/api/external/infra_proxy/response/environments.pb.go @@ -32,6 +32,10 @@ type Environments struct { // Environments list. Environments []*EnvironmentListItem `protobuf:"bytes,1,rep,name=environments,proto3" json:"environments,omitempty"` + // Starting page for the results. + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + // Total number of records. + Total int32 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"` } func (x *Environments) Reset() { @@ -73,6 +77,20 @@ func (x *Environments) GetEnvironments() []*EnvironmentListItem { return nil } +func (x *Environments) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *Environments) GetTotal() int32 { + if x != nil { + return x.Total + } + return 0 +} + type EnvironmentListItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -80,6 +98,8 @@ type EnvironmentListItem struct { // Environment name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Environment description. + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` } func (x *EnvironmentListItem) Reset() { @@ -121,6 +141,13 @@ func (x *EnvironmentListItem) GetName() string { return "" } +func (x *EnvironmentListItem) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + type Environment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -279,50 +306,55 @@ var file_external_infra_proxy_response_environments_proto_rawDesc = []byte{ 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x26, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x0c, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x5f, 0x0a, 0x0c, 0x65, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x0c, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x5f, 0x0a, 0x0c, 0x65, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, + 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x4b, 0x0a, 0x13, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x9c, 0x03, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x66, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65, 0x66, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x76, 0x0a, 0x11, 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, + 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x49, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x65, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x29, 0x0a, 0x13, 0x45, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, - 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9c, 0x03, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, - 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, - 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, - 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x76, 0x0a, 0x11, 0x63, 0x6f, 0x6f, 0x6b, - 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, - 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, - 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, - 0x2f, 0x0a, 0x13, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x76, - 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x1a, 0x43, 0x0a, 0x15, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x32, 0x0a, 0x16, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x42, 0x3c, 0x5a, 0x3a, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x63, 0x6f, 0x6f, + 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, + 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x13, + 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x43, 0x0a, + 0x15, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x32, 0x0a, 0x16, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, + 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x42, 0x3c, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/external/infra_proxy/response/environments.proto b/api/external/infra_proxy/response/environments.proto index 0e17c86fa0c..74fbaf7d69c 100644 --- a/api/external/infra_proxy/response/environments.proto +++ b/api/external/infra_proxy/response/environments.proto @@ -6,11 +6,17 @@ option go_package = "github.com/chef/automate/api/external/infra_proxy/response" message Environments { // Environments list. repeated EnvironmentListItem environments = 1; + // Starting page for the results. + int32 page = 2; + // Total number of records. + int32 total = 3; } message EnvironmentListItem { // Environment name. string name = 1; + // Environment description. + string description = 2; } message Environment { diff --git a/api/interservice/infra_proxy/request/environments.pb.go b/api/interservice/infra_proxy/request/environments.pb.go index 35013e06536..6d5a9335102 100644 --- a/api/interservice/infra_proxy/request/environments.pb.go +++ b/api/interservice/infra_proxy/request/environments.pb.go @@ -35,6 +35,8 @@ type Environments struct { OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty" toml:"org_id,omitempty" mapstructure:"org_id,omitempty"` // Chef Infra Server ID. ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty" toml:"server_id,omitempty" mapstructure:"server_id,omitempty"` + // Environments search query. + SearchQuery *SearchQuery `protobuf:"bytes,3,opt,name=search_query,json=searchQuery,proto3" json:"search_query,omitempty" toml:"search_query,omitempty" mapstructure:"search_query,omitempty"` } func (x *Environments) Reset() { @@ -83,6 +85,13 @@ func (x *Environments) GetServerId() string { return "" } +func (x *Environments) GetSearchQuery() *SearchQuery { + if x != nil { + return x.SearchQuery + } + return nil +} + type Environment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -381,17 +390,57 @@ var file_interservice_infra_proxy_request_environments_proto_rawDesc = []byte{ 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x42, 0x0a, + 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9c, 0x01, 0x0a, 0x0c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, - 0x64, 0x22, 0x55, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf3, 0x03, 0x0a, 0x11, 0x43, 0x72, 0x65, + 0x64, 0x12, 0x58, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x0b, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0x55, 0x0a, 0x0b, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, + 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xf3, 0x03, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, + 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x12, 0x7e, 0x0a, 0x11, 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, + 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x10, 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x46, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x13, 0x6f, 0x76, 0x65, + 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, + 0x12, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf3, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, @@ -405,8 +454,8 @@ var file_interservice_infra_proxy_request_environments_proto_rawDesc = []byte{ 0x6f, 0x6f, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, @@ -422,43 +471,12 @@ var file_interservice_infra_proxy_request_environments_proto_rawDesc = []byte{ 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf3, - 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, - 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x7e, 0x0a, - 0x11, 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x63, 0x6f, 0x6f, - 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, - 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x13, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, - 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x12, 0x6f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, - 0x43, 0x0a, 0x15, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x3f, + 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, + 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -481,20 +499,22 @@ var file_interservice_infra_proxy_request_environments_proto_goTypes = []interfa (*UpdateEnvironment)(nil), // 3: chef.automate.domain.infra_proxy.request.UpdateEnvironment nil, // 4: chef.automate.domain.infra_proxy.request.CreateEnvironment.CookbookVersionsEntry nil, // 5: chef.automate.domain.infra_proxy.request.UpdateEnvironment.CookbookVersionsEntry - (*_struct.Struct)(nil), // 6: google.protobuf.Struct + (*SearchQuery)(nil), // 6: chef.automate.domain.infra_proxy.request.SearchQuery + (*_struct.Struct)(nil), // 7: google.protobuf.Struct } var file_interservice_infra_proxy_request_environments_proto_depIdxs = []int32{ - 4, // 0: chef.automate.domain.infra_proxy.request.CreateEnvironment.cookbook_versions:type_name -> chef.automate.domain.infra_proxy.request.CreateEnvironment.CookbookVersionsEntry - 6, // 1: chef.automate.domain.infra_proxy.request.CreateEnvironment.default_attributes:type_name -> google.protobuf.Struct - 6, // 2: chef.automate.domain.infra_proxy.request.CreateEnvironment.override_attributes:type_name -> google.protobuf.Struct - 5, // 3: chef.automate.domain.infra_proxy.request.UpdateEnvironment.cookbook_versions:type_name -> chef.automate.domain.infra_proxy.request.UpdateEnvironment.CookbookVersionsEntry - 6, // 4: chef.automate.domain.infra_proxy.request.UpdateEnvironment.default_attributes:type_name -> google.protobuf.Struct - 6, // 5: chef.automate.domain.infra_proxy.request.UpdateEnvironment.override_attributes:type_name -> google.protobuf.Struct - 6, // [6:6] is the sub-list for method output_type - 6, // [6:6] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 6, // 0: chef.automate.domain.infra_proxy.request.Environments.search_query:type_name -> chef.automate.domain.infra_proxy.request.SearchQuery + 4, // 1: chef.automate.domain.infra_proxy.request.CreateEnvironment.cookbook_versions:type_name -> chef.automate.domain.infra_proxy.request.CreateEnvironment.CookbookVersionsEntry + 7, // 2: chef.automate.domain.infra_proxy.request.CreateEnvironment.default_attributes:type_name -> google.protobuf.Struct + 7, // 3: chef.automate.domain.infra_proxy.request.CreateEnvironment.override_attributes:type_name -> google.protobuf.Struct + 5, // 4: chef.automate.domain.infra_proxy.request.UpdateEnvironment.cookbook_versions:type_name -> chef.automate.domain.infra_proxy.request.UpdateEnvironment.CookbookVersionsEntry + 7, // 5: chef.automate.domain.infra_proxy.request.UpdateEnvironment.default_attributes:type_name -> google.protobuf.Struct + 7, // 6: chef.automate.domain.infra_proxy.request.UpdateEnvironment.override_attributes:type_name -> google.protobuf.Struct + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_interservice_infra_proxy_request_environments_proto_init() } @@ -502,6 +522,7 @@ func file_interservice_infra_proxy_request_environments_proto_init() { if File_interservice_infra_proxy_request_environments_proto != nil { return } + file_interservice_infra_proxy_request_common_proto_init() if !protoimpl.UnsafeEnabled { file_interservice_infra_proxy_request_environments_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Environments); i { diff --git a/api/interservice/infra_proxy/request/environments.proto b/api/interservice/infra_proxy/request/environments.proto index 9b7feb7f7e2..1af11d64cf4 100644 --- a/api/interservice/infra_proxy/request/environments.proto +++ b/api/interservice/infra_proxy/request/environments.proto @@ -4,12 +4,15 @@ package chef.automate.domain.infra_proxy.request; option go_package = "github.com/chef/automate/api/interservice/infra_proxy/request"; import "google/protobuf/struct.proto"; +import "interservice/infra_proxy/request/common.proto"; message Environments { // Chef organization ID. string org_id = 1; // Chef Infra Server ID. string server_id = 2; + // Environments search query. + SearchQuery search_query = 3; } message Environment { diff --git a/api/interservice/infra_proxy/response/environments.pb.go b/api/interservice/infra_proxy/response/environments.pb.go index 6b7eaf6cc4c..b865f9f4df8 100644 --- a/api/interservice/infra_proxy/response/environments.pb.go +++ b/api/interservice/infra_proxy/response/environments.pb.go @@ -32,6 +32,10 @@ type Environments struct { // Environments list. Environments []*EnvironmentListItem `protobuf:"bytes,1,rep,name=environments,proto3" json:"environments,omitempty" toml:"environments,omitempty" mapstructure:"environments,omitempty"` + // Starting page for the results. + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty" toml:"page,omitempty" mapstructure:"page,omitempty"` + // Total number of records. + Total int32 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty" toml:"total,omitempty" mapstructure:"total,omitempty"` } func (x *Environments) Reset() { @@ -73,6 +77,20 @@ func (x *Environments) GetEnvironments() []*EnvironmentListItem { return nil } +func (x *Environments) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *Environments) GetTotal() int32 { + if x != nil { + return x.Total + } + return 0 +} + type EnvironmentListItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -80,6 +98,8 @@ type EnvironmentListItem struct { // Environment name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"` + // Environment description. + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty" toml:"description,omitempty" mapstructure:"description,omitempty"` } func (x *EnvironmentListItem) Reset() { @@ -121,6 +141,13 @@ func (x *EnvironmentListItem) GetName() string { return "" } +func (x *EnvironmentListItem) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + type Environment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -280,50 +307,55 @@ var file_interservice_infra_proxy_response_environments_proto_rawDesc = []byte{ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x72, 0x0a, 0x0c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x62, 0x0a, 0x0c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x29, 0x0a, 0x13, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x9f, 0x03, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x12, 0x79, 0x0a, 0x11, 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, - 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x63, 0x6f, 0x6f, - 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, - 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x13, - 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x76, 0x65, 0x72, 0x72, - 0x69, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x43, 0x0a, - 0x15, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x32, 0x0a, 0x16, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, - 0x65, 0x63, 0x69, 0x70, 0x65, 0x73, 0x42, 0x40, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, - 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x0c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x62, 0x0a, 0x0c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x22, 0x4b, 0x0a, 0x13, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9f, 0x03, + 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, + 0x79, 0x0a, 0x11, 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x63, 0x6f, 0x6f, 0x6b, 0x62, 0x6f, + 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x76, 0x65, + 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x43, 0x6f, + 0x6f, 0x6b, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x32, 0x0a, 0x16, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x63, 0x69, 0x70, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x63, + 0x69, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x65, 0x73, 0x42, 0x40, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/interservice/infra_proxy/response/environments.proto b/api/interservice/infra_proxy/response/environments.proto index 6a866042209..efc9c3e2d0f 100644 --- a/api/interservice/infra_proxy/response/environments.proto +++ b/api/interservice/infra_proxy/response/environments.proto @@ -6,11 +6,17 @@ option go_package = "github.com/chef/automate/api/interservice/infra_proxy/respo message Environments { // Environments list. repeated EnvironmentListItem environments = 1; + // Starting page for the results. + int32 page = 2; + // Total number of records. + int32 total = 3; } message EnvironmentListItem { // Environment name. string name = 1; + // Environment description. + string description = 2; } message Environment { diff --git a/components/automate-gateway/api/infra_proxy.pb.swagger.go b/components/automate-gateway/api/infra_proxy.pb.swagger.go index 3bb7fa5bc12..51ad48ccb54 100644 --- a/components/automate-gateway/api/infra_proxy.pb.swagger.go +++ b/components/automate-gateway/api/infra_proxy.pb.swagger.go @@ -1229,6 +1229,29 @@ func init() { "in": "path", "required": true, "type": "string" + }, + { + "name": "search_query.q", + "description": "The search query used to identify a list of items.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "search_query.page", + "description": "Starting page for the results.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "search_query.per_page", + "description": "The number of results on each page.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], "tags": [ @@ -2954,6 +2977,10 @@ func init() { "name": { "type": "string", "description": "Environment name." + }, + "description": { + "type": "string", + "description": "Environment description." } } }, @@ -2978,6 +3005,16 @@ func init() { "$ref": "#/definitions/chef.automate.api.infra_proxy.response.EnvironmentListItem" }, "description": "Environments list." + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Starting page for the results." + }, + "total": { + "type": "integer", + "format": "int32", + "description": "Total number of records." } } }, diff --git a/components/automate-gateway/handler/infra_proxy/environments.go b/components/automate-gateway/handler/infra_proxy/environments.go index 8d5de5cc9e1..8f302b41bbd 100644 --- a/components/automate-gateway/handler/infra_proxy/environments.go +++ b/components/automate-gateway/handler/infra_proxy/environments.go @@ -14,6 +14,11 @@ func (a *InfraProxyServer) GetEnvironments(ctx context.Context, r *gwreq.Environ req := &infra_req.Environments{ OrgId: r.OrgId, ServerId: r.ServerId, + SearchQuery: &infra_req.SearchQuery{ + Q: r.GetSearchQuery().GetQ(), + PerPage: r.GetSearchQuery().GetPerPage(), + Page: r.GetSearchQuery().GetPage(), + }, } res, err := a.client.GetEnvironments(ctx, req) if err != nil { @@ -22,6 +27,8 @@ func (a *InfraProxyServer) GetEnvironments(ctx context.Context, r *gwreq.Environ return &gwres.Environments{ Environments: fromUpstreamEnvironments(res.Environments), + Page: res.GetPage(), + Total: res.GetTotal(), }, nil } @@ -128,10 +135,10 @@ func (a *InfraProxyServer) GetEnvironmentRecipes(ctx context.Context, r *gwreq.E func fromUpstreamEnvironments(environments []*infra_res.EnvironmentListItem) []*gwres.EnvironmentListItem { ts := make([]*gwres.EnvironmentListItem, len(environments)) - for i, e := range environments { ts[i] = &gwres.EnvironmentListItem{ - Name: e.GetName(), + Name: e.GetName(), + Description: e.GetDescription(), } } diff --git a/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json b/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json index 19a7d9531a8..48387868bed 100644 --- a/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json +++ b/components/docs-chef-io/data/automate/api_chef_automate/infra_proxy/infra_proxy.swagger.json @@ -1226,6 +1226,29 @@ "in": "path", "required": true, "type": "string" + }, + { + "name": "search_query.q", + "description": "The search query used to identify a list of items.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "search_query.page", + "description": "Starting page for the results.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "search_query.per_page", + "description": "The number of results on each page.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], "tags": [ @@ -2951,6 +2974,10 @@ "name": { "type": "string", "description": "Environment name." + }, + "description": { + "type": "string", + "description": "Environment description." } } }, @@ -2975,6 +3002,16 @@ "$ref": "#/definitions/chef.automate.api.infra_proxy.response.EnvironmentListItem" }, "description": "Environments list." + }, + "page": { + "type": "integer", + "format": "int32", + "description": "Starting page for the results." + }, + "total": { + "type": "integer", + "format": "int32", + "description": "Total number of records." } } }, diff --git a/components/infra-proxy-service/integration_test/environments_test.go b/components/infra-proxy-service/integration_test/environments_test.go new file mode 100644 index 00000000000..cb488990e96 --- /dev/null +++ b/components/infra-proxy-service/integration_test/environments_test.go @@ -0,0 +1,135 @@ +package integration_test + +import ( + "context" + "fmt" + "testing" + "time" + + "github.com/chef/automate/api/interservice/infra_proxy/request" + "github.com/stretchr/testify/assert" +) + +func TestGetEnvironments(t *testing.T) { + // rpc GetEnvironments (request.Environments) returns (response.Environments) + ctx := context.Background() + req := &request.Environments{ + ServerId: autoDeployedChefServerID, + OrgId: autoDeployedChefOrganizationID, + } + res, err := infraProxy.GetEnvironments(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + total := int(res.Total) + total = int(res.Total) + addEnvironments(ctx, 10) + + t.Run("Environments list without a search params", func(t *testing.T) { + res, err := infraProxy.GetEnvironments(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, 0, int(res.Page)) + assert.Equal(t, total, int(res.Total)) + }) + + t.Run("Environments list with a per_page search param", func(t *testing.T) { + req.SearchQuery = &request.SearchQuery{ + PerPage: 5, + } + + res, err := infraProxy.GetEnvironments(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, 0, int(res.Page)) + assert.Equal(t, 5, len(res.Environments)) + assert.Equal(t, total, int(res.Total)) + }) + + t.Run("Environments list with a page search param", func(t *testing.T) { + req.SearchQuery = &request.SearchQuery{ + PerPage: 5, + Page: 1, + } + + res, err := infraProxy.GetEnvironments(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, 1, int(res.Page)) + assert.Equal(t, 5, len(res.Environments)) + assert.Equal(t, total, int(res.Total)) + }) + + t.Run("Environments list with a page search param", func(t *testing.T) { + req.SearchQuery = &request.SearchQuery{ + PerPage: 5, + Page: 1, + } + + res, err := infraProxy.GetEnvironments(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, 1, int(res.Page)) + assert.Equal(t, 5, len(res.Environments)) + assert.Equal(t, total, int(res.Total)) + }) + + t.Run("Environments list with an invalid query search param", func(t *testing.T) { + req.SearchQuery = &request.SearchQuery{ + Q: "NO_KEY:NO_VALUE", + Page: 0, + PerPage: 5, + } + res, err := infraProxy.GetEnvironments(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, 0, int(res.Page)) + assert.Equal(t, 0, int(res.Total)) + assert.Equal(t, 0, len(res.Environments)) + }) + + t.Run("Clients list with an invalid query search param", func(t *testing.T) { + req.SearchQuery = &request.SearchQuery{ + Q: "INVALID_QUERY", + Page: 0, + PerPage: 5, + } + res, err := infraProxy.GetEnvironments(ctx, req) + assert.NoError(t, err) + assert.Equal(t, 0, int(res.Page)) + assert.Equal(t, 0, int(res.Total)) + assert.Equal(t, 0, len(res.Environments)) + }) + + t.Run("Environments list with a valid query search param", func(t *testing.T) { + req.SearchQuery = &request.SearchQuery{ + Q: "name:_default", + Page: 0, + PerPage: 5, + } + res, err := infraProxy.GetEnvironments(ctx, req) + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, 0, int(res.Page)) + assert.Equal(t, 1, int(res.Total)) + assert.Equal(t, "_default", res.Environments[0].GetName()) + }) + +} + +// Adds environments records +func addEnvironments(ctx context.Context, n int) int { + total := 0 + for i := 0; i < n; i++ { + req := &request.CreateEnvironment{ + ServerId: autoDeployedChefServerID, + OrgId: autoDeployedChefOrganizationID, + Name: fmt.Sprintf("chef-environment-%d", time.Now().Nanosecond()), + } + _, err := infraProxy.CreateEnvironment(ctx, req) + + if err == nil { + total++ + } + } + + return total +} diff --git a/components/infra-proxy-service/server/environments.go b/components/infra-proxy-service/server/environments.go index 3eb34e39034..ad465ef29da 100644 --- a/components/infra-proxy-service/server/environments.go +++ b/components/infra-proxy-service/server/environments.go @@ -3,7 +3,6 @@ package server import ( "context" "encoding/json" - "sort" chef "github.com/go-chef/chef" "google.golang.org/grpc/codes" @@ -14,20 +13,42 @@ import ( "github.com/chef/automate/components/infra-proxy-service/validation" ) -// GetEnvironments get environments list +// GetEnvironments gets environments list func (s *Server) GetEnvironments(ctx context.Context, req *request.Environments) (*response.Environments, error) { c, err := s.createClient(ctx, req.OrgId, req.ServerId) if err != nil { return nil, err } - environments, err := c.client.Environments.List() + perPage := int(req.GetSearchQuery().GetPerPage()) + if perPage == 0 { + perPage = 1000 + } + + searchStr := string(req.GetSearchQuery().GetQ()) + if searchStr == "" { + searchStr = "*:*" + } + query, err := c.client.Search.NewQuery("environment", searchStr) + query.Rows = perPage + + // Query accepts start param, The row at which return results begin. + query.Start = int(req.GetSearchQuery().GetPage()) * perPage + + res, err := query.Do(c.client) if err != nil { return nil, ParseAPIError(err) } + page := res.Start + if page != 0 { + page = page / perPage + } + return &response.Environments{ - Environments: fromAPIToListEnvironments(*environments), + Environments: fromAPIToListEnvironments(res.Rows), + Page: int32(page), + Total: int32(res.Total), }, nil } @@ -246,20 +267,14 @@ func (s *Server) GetEnvironmentRecipes(ctx context.Context, req *request.Environ } // fromAPIToListEnvironments a response.Environments from a struct of Environments -func fromAPIToListEnvironments(al chef.EnvironmentResult) []*response.EnvironmentListItem { +func fromAPIToListEnvironments(al []interface{}) []*response.EnvironmentListItem { cl := make([]*response.EnvironmentListItem, len(al)) - - index := 0 - for c := range al { + for index, e := range al { cl[index] = &response.EnvironmentListItem{ - Name: c, + Name: SafeStringFromMap(e.(map[string]interface{}), "name"), + Description: SafeStringFromMap(e.(map[string]interface{}), "description"), } - index++ } - sort.Slice(cl, func(i, j int) bool { - return cl[i].Name < cl[j].Name - }) - return cl } From 002066104b435e151c706973a42982b547c3a3a8 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Fri, 12 Feb 2021 17:55:47 +0530 Subject: [PATCH 22/34] Updated variable name Signed-off-by: chaitali-mane --- .../environments/environment.action.ts | 8 ++-- .../environments/environment.requests.ts | 2 +- .../environments/environments.component.html | 4 +- .../environments/environments.component.scss | 4 +- .../environments/environments.component.ts | 48 +++++-------------- 5 files changed, 21 insertions(+), 45 deletions(-) diff --git a/components/automate-ui/src/app/entities/environments/environment.action.ts b/components/automate-ui/src/app/entities/environments/environment.action.ts index 7e427519ab9..8b01e99b575 100644 --- a/components/automate-ui/src/app/entities/environments/environment.action.ts +++ b/components/automate-ui/src/app/entities/environments/environment.action.ts @@ -49,11 +49,11 @@ export class GetEnvironmentFailure implements Action { } export interface EnvironmentSearchPayload { - environmentId: string; - server_id: string; + environmentName: string; org_id: string; - name: string; - query: string; + page: number; + per_page: number; + server_id: string; } export class EnvironmentSearch implements Action { diff --git a/components/automate-ui/src/app/entities/environments/environment.requests.ts b/components/automate-ui/src/app/entities/environments/environment.requests.ts index 027af364fbd..5161aab231c 100644 --- a/components/automate-ui/src/app/entities/environments/environment.requests.ts +++ b/components/automate-ui/src/app/entities/environments/environment.requests.ts @@ -33,7 +33,7 @@ export class EnvironmentRequests { public getEnvironmentSearch(payload: EnvironmentSearchPayload) : Observable { return this.http.get( - `${env.infra_proxy_url}/servers/${payload.server_id}/orgs/${payload.org_id}/environments?search_query.${payload.query}=name:*${payload.environmentId}*`, + `${env.infra_proxy_url}/servers/${payload.server_id}/orgs/${payload.org_id}/environments?search_query.q=name:*${payload.environmentName}*`, {headers} ); } diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index 52edae8c8ab..b0875c24359 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -5,8 +5,8 @@

- -
+ +
No preview

No results found for "{{searchText}}".

diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss index a6ba64a3baf..5b2243dd7fd 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss @@ -41,10 +41,10 @@ chef-loading-spinner { } .empty-section { - margin-top: 50px; + margin-top: 130px; text-align: center; } img { - width: 122px; + width: 70px; } diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index 6cd94d41e8d..bdfd81112dd 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -33,7 +33,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { public authFailure = false; public environmentsSearch: Environment[]; public environmentsName: string; - public searchItems = false; + public searching = false; public searchText: string; constructor( @@ -73,6 +73,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { takeUntil(this.isDestroyed)) .subscribe(([_getEnvironmentsSt, EnvironmentsState]) => { this.environmentsSearch = EnvironmentsState; + this.searching = false; }); } @@ -81,43 +82,18 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { } toggleFilters(currentText: string) { - this.searchItems = true; - if (currentText) { - this.searchText = currentText; - const payload = { - environmentId: currentText, - page: 0, - per_page: this.environments.length, - server_id: this.serverId, - org_id: this.orgId, - name: this.environmentsName, - query: 'q' - }; - combineLatest([ - this.store.select(getSearchStatus), - this.store.select(allEnvironments) - ]).pipe( - filter(([getEnvironmentsSt, _EnvironmentsState]) => - getEnvironmentsSt === EntityStatus.loadingSuccess), - filter(([_getEnvironmentsSt, EnvironmentsState]) => - !isNil(EnvironmentsState)), - takeUntil(this.isDestroyed)) - .subscribe(([_getEnvironmentsSt, EnvironmentsState]) => { - this.environmentsSearch = EnvironmentsState; - }); - this.store.dispatch(new EnvironmentSearch(payload)); - - setTimeout(() => { - this.searchItems = false; - }, 2000); - } else { - this.store.dispatch(new GetEnvironments({ - server_id: this.serverId, org_id: this.orgId - })); - } + this.searching = true; + this.searchText = currentText; + const payload = { + environmentName: currentText, + page: 0, + per_page: this.environments.length, + server_id: this.serverId, + org_id: this.orgId + }; + this.store.dispatch(new EnvironmentSearch(payload)); } - ngOnDestroy(): void { this.isDestroyed.next(true); this.isDestroyed.complete(); From dce21f1f9b5ecf272f355f71a27bf99b74c39641 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Mon, 1 Feb 2021 10:35:43 +0530 Subject: [PATCH 23/34] Added searchbar for Environment --- .../environments/environment.action.ts | 37 ++++++++++++++- .../environments/environment.effects.ts | 25 ++++++++++- .../environments/environment.reducer.ts | 15 +++++++ .../environments/environment.requests.ts | 16 ++++++- .../environments/environment.selectors.ts | 5 +++ .../environments/environments.component.html | 1 + .../environments/environments.component.ts | 38 ++++++++++++++-- .../modules/infra-proxy/infra-proxy.module.ts | 4 +- .../search-bar-environments.component.html | 17 +++++++ .../search-bar-environments.component.scss | 36 +++++++++++++++ .../search-bar-environments.component.spec.ts | 25 +++++++++++ .../search-bar-environments.component.ts | 45 +++++++++++++++++++ 12 files changed, 256 insertions(+), 8 deletions(-) create mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html create mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss create mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts create mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts diff --git a/components/automate-ui/src/app/entities/environments/environment.action.ts b/components/automate-ui/src/app/entities/environments/environment.action.ts index c9a56c4bd92..7e427519ab9 100644 --- a/components/automate-ui/src/app/entities/environments/environment.action.ts +++ b/components/automate-ui/src/app/entities/environments/environment.action.ts @@ -8,7 +8,10 @@ export enum EnvironmentActionTypes { GET_ALL_FAILURE = 'ENVIRONMENTS::GET_ALL::FAILURE', GET = 'ENVIRONMENTS::GET', GET_SUCCESS = 'ENVIRONMENTS::GET::SUCCESS', - GET_FAILURE = 'ENVIRONMENTS::GET::FAILURE' + GET_FAILURE = 'ENVIRONMENTS::GET::FAILURE', + SEARCH = 'ENVIRONMENTS::SEARCH', + SEARCH_SUCCESS = 'ENVIRONMENTS::SEARCH::SUCCESS', + SEARCH_FAILURE = 'ENVIRONMENTS::SEARCH::FAILURE' } export interface EnvironmentsSuccessPayload { @@ -45,10 +48,40 @@ export class GetEnvironmentFailure implements Action { constructor(public payload: HttpErrorResponse) { } } +export interface EnvironmentSearchPayload { + environmentId: string; + server_id: string; + org_id: string; + name: string; + query: string; +} + +export class EnvironmentSearch implements Action { + readonly type = EnvironmentActionTypes.SEARCH; + constructor(public payload: EnvironmentSearchPayload) { } +} + +export interface EnvironmentSearchSuccessPayload { + environments: Environment[]; +} + +export class EnvironmentSearchSuccess implements Action { + readonly type = EnvironmentActionTypes.SEARCH_SUCCESS; + constructor(public payload: EnvironmentSearchSuccessPayload) { } +} + +export class EnvironmentSearchFailure implements Action { + readonly type = EnvironmentActionTypes.SEARCH_FAILURE; + constructor(public payload: HttpErrorResponse) { } +} + export type EnvironmentActions = | GetEnvironments | GetEnvironmentsSuccess | GetEnvironmentsFailure | GetEnvironment | GetEnvironmentSuccess - | GetEnvironmentFailure; + | GetEnvironmentFailure + | EnvironmentSearch + | EnvironmentSearchSuccess + | EnvironmentSearchFailure; diff --git a/components/automate-ui/src/app/entities/environments/environment.effects.ts b/components/automate-ui/src/app/entities/environments/environment.effects.ts index 7a8523c1b65..43e4a0cb75f 100644 --- a/components/automate-ui/src/app/entities/environments/environment.effects.ts +++ b/components/automate-ui/src/app/entities/environments/environment.effects.ts @@ -14,7 +14,10 @@ import { EnvironmentActionTypes, GetEnvironment, GetEnvironmentSuccess, - GetEnvironmentFailure + GetEnvironmentFailure, + EnvironmentSearch, + EnvironmentSearchSuccess, + EnvironmentSearchFailure } from './environment.action'; import { EnvironmentRequests } from './environment.requests'; @@ -65,4 +68,24 @@ export class EnvironmentEffects { message: `Could not get environment: ${msg || payload.error}` }); })); + + @Effect() + getEnvironmentSearch$ = this.actions$.pipe( + ofType(EnvironmentActionTypes.SEARCH), + mergeMap((action: EnvironmentSearch) => + this.requests.getEnvironmentSearch(action.payload).pipe( + map((resp) => new EnvironmentSearchSuccess(resp)), + catchError((error: HttpErrorResponse) => + observableOf(new EnvironmentSearchFailure(error)))))); + + @Effect() + getClientSearchFailure$ = this.actions$.pipe( + ofType(EnvironmentActionTypes.SEARCH_FAILURE), + map(({ payload }: EnvironmentSearchFailure) => { + const msg = payload.error.error; + return new CreateNotification({ + type: Type.error, + message: `Could not get infra Environment details: ${msg || payload.error}` + }); + })); } diff --git a/components/automate-ui/src/app/entities/environments/environment.reducer.ts b/components/automate-ui/src/app/entities/environments/environment.reducer.ts index f290f5733bf..aa7028d1fcc 100644 --- a/components/automate-ui/src/app/entities/environments/environment.reducer.ts +++ b/components/automate-ui/src/app/entities/environments/environment.reducer.ts @@ -7,9 +7,11 @@ import { Environment } from './environment.model'; export interface EnvironmentEntityState extends EntityState { environmentsStatus: EntityStatus; getAllStatus: EntityStatus; + getSearchStatus: EntityStatus; } const GET_ALL_STATUS = 'getAllStatus'; +const GET_SEARCH_STATUS = 'getSearchStatus'; export const environmentEntityAdapter: EntityAdapter = createEntityAdapter({ @@ -38,6 +40,19 @@ export function environmentEntityReducer( case EnvironmentActionTypes.GET_ALL_FAILURE: return set(GET_ALL_STATUS, EntityStatus.loadingFailure, state); + case EnvironmentActionTypes.SEARCH: + return set(GET_SEARCH_STATUS, EntityStatus.loading, environmentEntityAdapter + .removeAll(state)); + + case EnvironmentActionTypes.SEARCH_SUCCESS: + return pipe( + set(GET_SEARCH_STATUS, EntityStatus.loadingSuccess)) + (environmentEntityAdapter + .setAll(action.payload.environments, state)) as EnvironmentEntityState; + + case EnvironmentActionTypes.SEARCH_FAILURE: + return set(GET_SEARCH_STATUS, EntityStatus.loadingFailure, state); + default: return state; } diff --git a/components/automate-ui/src/app/entities/environments/environment.requests.ts b/components/automate-ui/src/app/entities/environments/environment.requests.ts index 40b5ce40ec2..c808f43ca95 100644 --- a/components/automate-ui/src/app/entities/environments/environment.requests.ts +++ b/components/automate-ui/src/app/entities/environments/environment.requests.ts @@ -2,12 +2,17 @@ import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable } from 'rxjs'; import { environment as env } from 'environments/environment'; -import { EnvironmentsSuccessPayload } from './environment.action'; +import { EnvironmentsSuccessPayload, EnvironmentSearchPayload } from './environment.action'; import { Environment } from './environment.model'; import { InterceptorSkipHeader } from 'app/services/http/http-client-auth.interceptor'; const headers = new HttpHeaders().set(InterceptorSkipHeader, ''); +export interface EnvironmentSearchResponse { + environments: any[]; + total: number; +} + @Injectable() export class EnvironmentRequests { @@ -24,4 +29,13 @@ export class EnvironmentRequests { return this.http.get( `${env.infra_proxy_url}/servers/${server_id}/orgs/${org_id}/environments/${name}`, {headers}); } + + // ?search_query.q=name:node-* + public getEnvironmentSearch(payload: EnvironmentSearchPayload) + : Observable { + return this.http.get( + `${env.infra_proxy_url}/servers/${payload.server_id}/orgs/${payload.org_id}/environments?search_query.${payload.query}=name:${payload.environmentId}*`, + {headers} + ); + } } diff --git a/components/automate-ui/src/app/entities/environments/environment.selectors.ts b/components/automate-ui/src/app/entities/environments/environment.selectors.ts index c4d49209e99..360b6add23a 100644 --- a/components/automate-ui/src/app/entities/environments/environment.selectors.ts +++ b/components/automate-ui/src/app/entities/environments/environment.selectors.ts @@ -16,3 +16,8 @@ export const getAllStatus = createSelector( environmentState, (state) => state.getAllStatus ); + +export const getSearchStatus = createSelector( + environmentState, + (state) => state.getSearchStatus +); diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index 40374849392..cb90f2e516e 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -2,6 +2,7 @@ + diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index d76b63e92cc..4226e9bb1b3 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -3,15 +3,16 @@ import { Store } from '@ngrx/store'; import { combineLatest, Subject } from 'rxjs'; import { NgrxStateAtom } from 'app/ngrx.reducers'; import { LayoutFacadeService, Sidebar } from 'app/entities/layout/layout.facade'; -import { takeUntil } from 'rxjs/operators'; +import { filter, takeUntil } from 'rxjs/operators'; import { isNil } from 'lodash/fp'; import { EntityStatus } from 'app/entities/entities'; -import { GetEnvironments } from 'app/entities/environments/environment.action'; +import { GetEnvironments, EnvironmentSearch } from 'app/entities/environments/environment.action'; import { Environment } from 'app/entities/environments/environment.model'; import { allEnvironments, - getAllStatus as getAllEnvironmentsForOrgStatus + getAllStatus as getAllEnvironmentsForOrgStatus, + getSearchStatus } from 'app/entities/environments/environment.selectors'; @@ -30,6 +31,8 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { public environments: Environment[] = []; public environmentsListLoading = true; public authFailure = false; + public environmentsSearch: Environment[]; + public environmentsName: string; constructor( private store: Store, @@ -56,12 +59,41 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { this.authFailure = true; } }); + + combineLatest([ + this.store.select(getSearchStatus), + this.store.select(allEnvironments), + ]).pipe( + filter(([getEnvironmentsSt, _EnvironmentsState]) => + getEnvironmentsSt === EntityStatus.loadingSuccess), + filter(([_getEnvironmentsSt, EnvironmentsState]) => + !isNil(EnvironmentsState)), + takeUntil(this.isDestroyed)) + .subscribe(([_getEnvironmentsSt, EnvironmentsState]) => { + this.environmentsSearch = EnvironmentsState; + }); } resetKeyTabRedirection(resetLink: boolean) { this.resetKeyRedirection.emit(resetLink); } + toggleFilters(currentText: string) { + if(currentText) { + const payload = { + environmentId: currentText, + page: 0, + per_page: 20, + server_id: this.serverId, + org_id: this.orgId, + name: this.environmentsName, + query: 'q' + }; + this.store.dispatch(new EnvironmentSearch(payload)); + } + } + + ngOnDestroy(): void { this.isDestroyed.next(true); this.isDestroyed.complete(); diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts b/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts index 54b6121713f..42e37722911 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts @@ -26,6 +26,7 @@ import { PolicyFilesComponent } from './policy-files/policy-files.component'; import { ResetAdminKeyComponent } from './reset-admin-key/reset-admin-key.component'; import { TreeTableModule } from './tree-table/tree-table.module'; import { EmptyStateComponent } from './empty-state/empty-state.component'; +import { SearchBarEnvironmentsComponent } from './search-bar-environments/search-bar-environments.component'; @NgModule({ declarations: [ @@ -48,7 +49,8 @@ import { EmptyStateComponent } from './empty-state/empty-state.component'; OrgDetailsComponent, OrgEditComponent, PolicyFilesComponent, - ResetAdminKeyComponent + ResetAdminKeyComponent, + SearchBarEnvironmentsComponent ], imports: [ CommonModule, diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html new file mode 100644 index 00000000000..74759d103f9 --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html @@ -0,0 +1,17 @@ +
+
+ + +
+
diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss new file mode 100644 index 00000000000..5dcc2a3ccd6 --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss @@ -0,0 +1,36 @@ +@import "~styles/variables"; +@import "~styles/mixins"; + +.search-wrapper { + width: 100%; + font-size: 1em; + color: $chef-primary-dark; + padding-bottom: 25px; +} + +.search-input-wrapper { + position: relative; + .search-button { + box-shadow: 0 1px 14px #E6EBEE; + border: 1px solid #E5E5E5; + border-left: none; + border-radius: 0px 4px 4px 0px; + background: #E6EBEE; + width: 45px; + height: 43px; + position: absolute; + right: 1px; + top: 1px; + } + + .chef-input { + border-radius: 4px 0px 0px 4px; + // border-right: none; + width: 100%; + } + + .search-items { + margin-bottom: 25px; + width: 100%; + } +} \ No newline at end of file diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts new file mode 100644 index 00000000000..7bd345c7242 --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SearchBarEnvironmentsComponent } from './search-bar-environments.component'; + +describe('SearchBarEnvironmentsComponent', () => { + let component: SearchBarEnvironmentsComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ SearchBarEnvironmentsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(SearchBarEnvironmentsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts new file mode 100644 index 00000000000..6061687dfeb --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts @@ -0,0 +1,45 @@ +import { + Component, + EventEmitter, + Output, + OnInit, + ViewChild, + ElementRef, +} from '@angular/core'; + +@Component({ + selector: 'app-search-bar-environments', + templateUrl: './search-bar-environments.component.html', + styleUrls: ['./search-bar-environments.component.scss'] +}) +export class SearchBarEnvironmentsComponent implements OnInit { + inputText= ''; + + @Output() searchButtonClick: EventEmitter = new EventEmitter(); + @ViewChild('search_box', { static: true }) inputField: ElementRef; + + ngOnInit(): void { + } + + handleFiltersClick(currentText: string): void { + console.log(currentText); + this.searchButtonClick.emit(currentText); + } + + pressEnter(currentText: string): void { + console.log(currentText); + this.searchButtonClick.emit(currentText); + } + + handleInput(key, currentText): void { + switch (key.toLowerCase()) { + case 'enter': + this.pressEnter(currentText); + break; + } + } + + getFilterText(): string { + return 'Search Environments'; + } +} From 3147984f1a17dba9b1cb9f854a6221eaa1a2b588 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Mon, 1 Feb 2021 20:14:48 +0530 Subject: [PATCH 24/34] added to search bar --- .../src/app/entities/environments/environment.effects.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/components/automate-ui/src/app/entities/environments/environment.effects.ts b/components/automate-ui/src/app/entities/environments/environment.effects.ts index 43e4a0cb75f..736ec44ac11 100644 --- a/components/automate-ui/src/app/entities/environments/environment.effects.ts +++ b/components/automate-ui/src/app/entities/environments/environment.effects.ts @@ -17,6 +17,7 @@ import { GetEnvironmentFailure, EnvironmentSearch, EnvironmentSearchSuccess, + EnvironmentSearchSuccessPayload, EnvironmentSearchFailure } from './environment.action'; @@ -74,12 +75,12 @@ export class EnvironmentEffects { ofType(EnvironmentActionTypes.SEARCH), mergeMap((action: EnvironmentSearch) => this.requests.getEnvironmentSearch(action.payload).pipe( - map((resp) => new EnvironmentSearchSuccess(resp)), + map((resp: EnvironmentSearchSuccessPayload) => new EnvironmentSearchSuccess(resp)), catchError((error: HttpErrorResponse) => observableOf(new EnvironmentSearchFailure(error)))))); @Effect() - getClientSearchFailure$ = this.actions$.pipe( + getEnvironmentSearchFailure$ = this.actions$.pipe( ofType(EnvironmentActionTypes.SEARCH_FAILURE), map(({ payload }: EnvironmentSearchFailure) => { const msg = payload.error.error; From b71c542cca9590ac58816b6551faeb521384840f Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Tue, 2 Feb 2021 16:14:44 +0530 Subject: [PATCH 25/34] Change name Searchbar component --- .../environments/environment.effects.ts | 2 +- .../environments/environment.requests.ts | 1 - .../environments/environments.component.html | 2 +- .../environments/environments.component.ts | 8 ++-- .../modules/infra-proxy/infra-proxy.module.ts | 7 +-- .../infra-search-bar.component.html | 16 +++++++ .../infra-search-bar.component.scss | 41 +++++++++++++++++ .../infra-search-bar.component.spec.ts | 25 +++++++++++ .../infra-search-bar.component.ts | 44 +++++++++++++++++++ 9 files changed, 136 insertions(+), 10 deletions(-) create mode 100644 components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.html create mode 100644 components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss create mode 100644 components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.spec.ts create mode 100644 components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts diff --git a/components/automate-ui/src/app/entities/environments/environment.effects.ts b/components/automate-ui/src/app/entities/environments/environment.effects.ts index 736ec44ac11..cb6697608d0 100644 --- a/components/automate-ui/src/app/entities/environments/environment.effects.ts +++ b/components/automate-ui/src/app/entities/environments/environment.effects.ts @@ -78,7 +78,7 @@ export class EnvironmentEffects { map((resp: EnvironmentSearchSuccessPayload) => new EnvironmentSearchSuccess(resp)), catchError((error: HttpErrorResponse) => observableOf(new EnvironmentSearchFailure(error)))))); - + @Effect() getEnvironmentSearchFailure$ = this.actions$.pipe( ofType(EnvironmentActionTypes.SEARCH_FAILURE), diff --git a/components/automate-ui/src/app/entities/environments/environment.requests.ts b/components/automate-ui/src/app/entities/environments/environment.requests.ts index c808f43ca95..b8f1285fef1 100644 --- a/components/automate-ui/src/app/entities/environments/environment.requests.ts +++ b/components/automate-ui/src/app/entities/environments/environment.requests.ts @@ -30,7 +30,6 @@ export class EnvironmentRequests { `${env.infra_proxy_url}/servers/${server_id}/orgs/${org_id}/environments/${name}`, {headers}); } - // ?search_query.q=name:node-* public getEnvironmentSearch(payload: EnvironmentSearchPayload) : Observable { return this.http.get( diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index cb90f2e516e..39e2e94f1da 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -2,7 +2,7 @@ - + diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index 4226e9bb1b3..e459cc5907d 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -62,7 +62,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { combineLatest([ this.store.select(getSearchStatus), - this.store.select(allEnvironments), + this.store.select(allEnvironments) ]).pipe( filter(([getEnvironmentsSt, _EnvironmentsState]) => getEnvironmentsSt === EntityStatus.loadingSuccess), @@ -79,15 +79,15 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { } toggleFilters(currentText: string) { - if(currentText) { + if (currentText) { const payload = { environmentId: currentText, page: 0, per_page: 20, server_id: this.serverId, org_id: this.orgId, - name: this.environmentsName, - query: 'q' + name: this.environmentsName, + query: 'q' }; this.store.dispatch(new EnvironmentSearch(payload)); } diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts b/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts index 42e37722911..1d6c9f09138 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-proxy.module.ts @@ -19,6 +19,7 @@ import { EnvironmentsComponent } from './environments/environments.component'; import { EnvironmentDetailsComponent } from './environment-details/environment-details.component'; import { InfraRolesComponent } from './infra-roles/infra-roles.component'; import { InfraRoleDetailsComponent } from './infra-role-details/infra-role-details.component'; +import { InfraSearchBarComponent } from './infra-search-bar/infra-search-bar.component'; import { JsonTreeTableComponent } from './json-tree-table/json-tree-table.component'; import { OrgDetailsComponent } from './org-details/org-details.component'; import { OrgEditComponent } from './org-edit/org-edit.component'; @@ -26,7 +27,7 @@ import { PolicyFilesComponent } from './policy-files/policy-files.component'; import { ResetAdminKeyComponent } from './reset-admin-key/reset-admin-key.component'; import { TreeTableModule } from './tree-table/tree-table.module'; import { EmptyStateComponent } from './empty-state/empty-state.component'; -import { SearchBarEnvironmentsComponent } from './search-bar-environments/search-bar-environments.component'; + @NgModule({ declarations: [ @@ -46,11 +47,11 @@ import { SearchBarEnvironmentsComponent } from './search-bar-environments/search JsonTreeTableComponent, InfraRolesComponent, InfraRoleDetailsComponent, + InfraSearchBarComponent, OrgDetailsComponent, OrgEditComponent, PolicyFilesComponent, - ResetAdminKeyComponent, - SearchBarEnvironmentsComponent + ResetAdminKeyComponent ], imports: [ CommonModule, diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.html b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.html new file mode 100644 index 00000000000..dec03161db6 --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.html @@ -0,0 +1,16 @@ +
+
+ + +
+
diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss new file mode 100644 index 00000000000..90e388151e6 --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss @@ -0,0 +1,41 @@ +@import "~styles/variables"; +@import "~styles/mixins"; + +.search-wrapper { + width: 100%; + font-size: 1em; + color: $chef-primary-dark; + padding-bottom: 25px; +} + +.search-input-wrapper { + position: relative; + + .search-button { + box-shadow: 0 1px 14px #E6EBEE; + border: 1px solid #E5E5E5; + border-left: none; + border-radius: 0px 4px 4px 0px; + background: #E6EBEE; + width: 45px; + height: 43px; + position: absolute; + right: 1px; + top: 1px; + } + + .chef-input { + border-radius: 4px 0px 0px 4px; + // border-right: none; + width: 100%; + } + + .search-items { + margin-bottom: 25px; + width: 100%; + } +} + +.hidden-label { + padding: 0; +} diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.spec.ts b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.spec.ts new file mode 100644 index 00000000000..47dc386c10d --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { InfraSearchBarComponent } from './infra-search-bar.component'; + +describe('SearchBarEnvironmentsComponent', () => { + let component: InfraSearchBarComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ InfraSearchBarComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(InfraSearchBarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts new file mode 100644 index 00000000000..1e0b3b184ab --- /dev/null +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts @@ -0,0 +1,44 @@ +import { + Component, + EventEmitter, + Output, + OnInit, + ViewChild, + ElementRef, + Input +} from '@angular/core'; + +@Component({ + selector: 'app-infra-search-bar', + templateUrl: './infra-search-bar.component.html', + styleUrls: ['./infra-search-bar.component.scss'] +}) + +export class InfraSearchBarComponent implements OnInit { + inputText = ''; + @Input() placeHolder: string; + @Output() searchButtonClick: EventEmitter = new EventEmitter(); + @ViewChild('search_box', { static: true }) inputField: ElementRef; + + ngOnInit() {} + + handleFiltersClick(currentText: string): void { + this.searchButtonClick.emit(currentText); + } + + pressEnter(currentText: string): void { + this.searchButtonClick.emit(currentText); + } + + handleInput(key, currentText): void { + switch (key.toLowerCase()) { + case 'enter': + this.pressEnter(currentText); + break; + } + } + + getFilterText(): string { + return 'Search ' + this.placeHolder; + } +} From 17e7137c27cfdaabab18ef73d22d080145e252f9 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Tue, 2 Feb 2021 16:15:07 +0530 Subject: [PATCH 26/34] Removed component --- .../search-bar-environments.component.html | 17 ------- .../search-bar-environments.component.scss | 36 --------------- .../search-bar-environments.component.spec.ts | 25 ----------- .../search-bar-environments.component.ts | 45 ------------------- 4 files changed, 123 deletions(-) delete mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html delete mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss delete mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts delete mode 100644 components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html deleted file mode 100644 index 74759d103f9..00000000000 --- a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.html +++ /dev/null @@ -1,17 +0,0 @@ -
-
- - -
-
diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss deleted file mode 100644 index 5dcc2a3ccd6..00000000000 --- a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.scss +++ /dev/null @@ -1,36 +0,0 @@ -@import "~styles/variables"; -@import "~styles/mixins"; - -.search-wrapper { - width: 100%; - font-size: 1em; - color: $chef-primary-dark; - padding-bottom: 25px; -} - -.search-input-wrapper { - position: relative; - .search-button { - box-shadow: 0 1px 14px #E6EBEE; - border: 1px solid #E5E5E5; - border-left: none; - border-radius: 0px 4px 4px 0px; - background: #E6EBEE; - width: 45px; - height: 43px; - position: absolute; - right: 1px; - top: 1px; - } - - .chef-input { - border-radius: 4px 0px 0px 4px; - // border-right: none; - width: 100%; - } - - .search-items { - margin-bottom: 25px; - width: 100%; - } -} \ No newline at end of file diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts deleted file mode 100644 index 7bd345c7242..00000000000 --- a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { SearchBarEnvironmentsComponent } from './search-bar-environments.component'; - -describe('SearchBarEnvironmentsComponent', () => { - let component: SearchBarEnvironmentsComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ SearchBarEnvironmentsComponent ] - }) - .compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(SearchBarEnvironmentsComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts deleted file mode 100644 index 6061687dfeb..00000000000 --- a/components/automate-ui/src/app/modules/infra-proxy/search-bar-environments/search-bar-environments.component.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { - Component, - EventEmitter, - Output, - OnInit, - ViewChild, - ElementRef, -} from '@angular/core'; - -@Component({ - selector: 'app-search-bar-environments', - templateUrl: './search-bar-environments.component.html', - styleUrls: ['./search-bar-environments.component.scss'] -}) -export class SearchBarEnvironmentsComponent implements OnInit { - inputText= ''; - - @Output() searchButtonClick: EventEmitter = new EventEmitter(); - @ViewChild('search_box', { static: true }) inputField: ElementRef; - - ngOnInit(): void { - } - - handleFiltersClick(currentText: string): void { - console.log(currentText); - this.searchButtonClick.emit(currentText); - } - - pressEnter(currentText: string): void { - console.log(currentText); - this.searchButtonClick.emit(currentText); - } - - handleInput(key, currentText): void { - switch (key.toLowerCase()) { - case 'enter': - this.pressEnter(currentText); - break; - } - } - - getFilterText(): string { - return 'Search Environments'; - } -} From 81b9205de5d23e0e2cf38fd3dd17bfd1318b4c98 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Tue, 2 Feb 2021 20:28:17 +0530 Subject: [PATCH 27/34] Added spiner for search function --- .../environments/environment.requests.ts | 2 +- .../environments/environments.component.html | 8 ++++-- .../environments/environments.component.scss | 1 + .../environments/environments.component.ts | 26 +++++++++++++++++-- .../infra-search-bar.component.scss | 1 + .../infra-search-bar.component.ts | 2 +- 6 files changed, 34 insertions(+), 6 deletions(-) diff --git a/components/automate-ui/src/app/entities/environments/environment.requests.ts b/components/automate-ui/src/app/entities/environments/environment.requests.ts index b8f1285fef1..027af364fbd 100644 --- a/components/automate-ui/src/app/entities/environments/environment.requests.ts +++ b/components/automate-ui/src/app/entities/environments/environment.requests.ts @@ -33,7 +33,7 @@ export class EnvironmentRequests { public getEnvironmentSearch(payload: EnvironmentSearchPayload) : Observable { return this.http.get( - `${env.infra_proxy_url}/servers/${payload.server_id}/orgs/${payload.org_id}/environments?search_query.${payload.query}=name:${payload.environmentId}*`, + `${env.infra_proxy_url}/servers/${payload.server_id}/orgs/${payload.org_id}/environments?search_query.${payload.query}=name:*${payload.environmentId}*`, {headers} ); } diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index 39e2e94f1da..e381637aec5 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -2,8 +2,12 @@ - - +
+ +
+ +
No Environments available
+ Environments Name diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss index 560633cf66e..fa94c26a4e4 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss @@ -32,4 +32,5 @@ chef-loading-spinner { margin: 100px auto; width: 100px; z-index: 199; + background: transparent; } diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index e459cc5907d..e291214e0e7 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -33,6 +33,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { public authFailure = false; public environmentsSearch: Environment[]; public environmentsName: string; + public searchItems = false; constructor( private store: Store, @@ -79,17 +80,38 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { } toggleFilters(currentText: string) { + this.searchItems = true; if (currentText) { const payload = { environmentId: currentText, page: 0, - per_page: 20, + per_page: this.environments.length, server_id: this.serverId, org_id: this.orgId, name: this.environmentsName, query: 'q' }; - this.store.dispatch(new EnvironmentSearch(payload)); + combineLatest([ + this.store.select(getSearchStatus), + this.store.select(allEnvironments) + ]).pipe( + filter(([getEnvironmentsSt, _EnvironmentsState]) => + getEnvironmentsSt === EntityStatus.loadingSuccess), + filter(([_getEnvironmentsSt, EnvironmentsState]) => + !isNil(EnvironmentsState)), + takeUntil(this.isDestroyed)) + .subscribe(([_getEnvironmentsSt, EnvironmentsState]) => { + this.environmentsSearch = EnvironmentsState; + }); + this.store.dispatch(new EnvironmentSearch(payload)); + + setTimeout(() => { + this.searchItems = false; + }, 2000); + } else { + this.store.dispatch(new GetEnvironments({ + server_id: this.serverId, org_id: this.orgId + })); } } diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss index 90e388151e6..daa345e4e1e 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.scss @@ -17,6 +17,7 @@ border-left: none; border-radius: 0px 4px 4px 0px; background: #E6EBEE; + cursor: pointer; width: 45px; height: 43px; position: absolute; diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts index 1e0b3b184ab..ffed3fb4425 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts @@ -30,7 +30,7 @@ export class InfraSearchBarComponent implements OnInit { this.searchButtonClick.emit(currentText); } - handleInput(key, currentText): void { + handleInput(key: string, currentText: string): void { switch (key.toLowerCase()) { case 'enter': this.pressEnter(currentText); From 97a873bd30f9590ffcdb474a138214cd6a4eb8e9 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Tue, 2 Feb 2021 22:36:47 +0530 Subject: [PATCH 28/34] Updated style for spinner --- .../infra-proxy/environments/environments.component.html | 2 +- .../infra-proxy/environments/environments.component.scss | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index e381637aec5..a29dc6dbd71 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -5,7 +5,7 @@
- +
No Environments available
diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss index fa94c26a4e4..48f6c9ab6cb 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss @@ -32,5 +32,10 @@ chef-loading-spinner { margin: 100px auto; width: 100px; z-index: 199; - background: transparent; +} + +.full-screen-spinner { + display: flex; + margin: auto; + width: initial; } From fa431fea36b01e0dde558879d429dace58c0d899 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Wed, 3 Feb 2021 17:37:38 +0530 Subject: [PATCH 29/34] updated searchbar --- .../infra-search-bar/infra-search-bar.component.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts index ffed3fb4425..c362a1c5847 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/infra-search-bar/infra-search-bar.component.ts @@ -2,7 +2,6 @@ import { Component, EventEmitter, Output, - OnInit, ViewChild, ElementRef, Input @@ -14,14 +13,13 @@ import { styleUrls: ['./infra-search-bar.component.scss'] }) -export class InfraSearchBarComponent implements OnInit { +export class InfraSearchBarComponent { inputText = ''; + @Input() placeHolder: string; @Output() searchButtonClick: EventEmitter = new EventEmitter(); @ViewChild('search_box', { static: true }) inputField: ElementRef; - ngOnInit() {} - handleFiltersClick(currentText: string): void { this.searchButtonClick.emit(currentText); } From 97ad593a1d97c478c01d03539394e3cf9d117f7f Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Mon, 8 Feb 2021 17:09:55 +0530 Subject: [PATCH 30/34] No data for searchbar updated --- .../environments/environments.component.html | 5 ++++- .../environments/environments.component.scss | 9 +++++++++ .../environments/environments.component.ts | 2 ++ .../automate-ui/src/assets/img/no_preview.gif | Bin 0 -> 702003 bytes 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 components/automate-ui/src/assets/img/no_preview.gif diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index a29dc6dbd71..52edae8c8ab 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -6,7 +6,10 @@
-
No Environments available
+
+ No preview +

No results found for "{{searchText}}".

+
diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss index 48f6c9ab6cb..a6ba64a3baf 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss @@ -39,3 +39,12 @@ chef-loading-spinner { margin: auto; width: initial; } + +.empty-section { + margin-top: 50px; + text-align: center; +} + +img { + width: 122px; +} diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index e291214e0e7..6cd94d41e8d 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -34,6 +34,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { public environmentsSearch: Environment[]; public environmentsName: string; public searchItems = false; + public searchText: string; constructor( private store: Store, @@ -82,6 +83,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { toggleFilters(currentText: string) { this.searchItems = true; if (currentText) { + this.searchText = currentText; const payload = { environmentId: currentText, page: 0, diff --git a/components/automate-ui/src/assets/img/no_preview.gif b/components/automate-ui/src/assets/img/no_preview.gif new file mode 100644 index 0000000000000000000000000000000000000000..f14c050e445f1a6cd41d0b2ede90e98d189a5802 GIT binary patch literal 702003 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%0DhOXy%k(IuekoaGFG3B5CJ= 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

_zpQpKyZ-uu?Oqi#>o4Mc$^D{V3fQ`7 z%a?0t-rHN4X}`d_tBNlZy_;rHyx z(IB*NG0)jq?6Q`2;Hv$pc6P0{EQ&H04>eFTvr;!ti1`J`p05V?8HhGZCS8{kQn~UN zXUt-GJ<%bjSQtNL%4<8lz*U{~zSc^LqHv*|2tst-0An4>`+D`+C)mqkPt^70H15*22-P4=gcN^7>;ums{j?h+$q*1%8b!U9#^gynLOG&_q=YR28 z9K;w?i(*#Az9&OLA%hZkh=i=!4)MWHLFxN^GpC(2McQh~i@Lm%l+RA&sO?{Iy!)1a z)b!nlk|c)cPC-_Nonv|F`)#6!6K`tVB1@#^9_!?Xk^ud{);I>Z zR@mPb-aKdXrBZ`)a30aIszHbqp<9-AXK-;4)yZ;H)0o|E6l}<4c-f|T@52)bIO@0N zK+bNVH<@=_iJe}0$gI%yr^B0JCXL_vN7ZLZ?K>zh6KWz~v74NhlU|3!;US;XahG1! zS6`=Jbqez7UIBLGpBWYg#?(ax=lO#b^mw;~!hcwRL@=tSNBr-FLglo>2mB$ZxJOib zPs#YfL`Nz?k^Y=+5d!>B=0WAb92Sy2rJ~qt-aD)kii$b0N>=u4vWi!VzYxleKiHHm zaN&-P9~PrNxdwAC_3v_2qw@C~B@--&%rqgJNp8pmz@YebLbp}_5(Vr&bP_DO5B3|U->KZ8HLpY2}64t=mIpW0G-te`(6 zBktM&LwvxVl3lzg+XZK&o1}(m?ChpjYF>P@ERnvx7#}Jce;mIm10C*^RzDKW9*THcq{;A!@otGDvLL3H67{vbO=M!=YNY$|LpQgCU`Gf~o+JVR=WIzz zZegin7Uze@j+7v|TuV2MZ2q$Y>fN1r^2rq>{ zD)O&c3Xu~M*5^}2c@uQ$(keC66g9=RR>XdiAw)p|k2gV&_7GQO2rYObcE|zmhh3Kj z#|R5=;l!!QxmfWcLAer)?wrI&sdSnUR)h2%HdG4BvxAv= z)8(@SWwX1@19YwjVGw&xn+2Ott(oQ?E{7c^b^xeWBj8&wMkUb*T;WRkkp&*{**> zg0-^H3(WH(0#qqnm{!NTxydet%gPQe;w*>cce4o+it3<6o*QiK($G8ZMI!DpC<7J+ zH|?c5#-#Lu^?h)_wGwNdta^K?{rw_pNP(Si?6=k8$)QIT^XVGP`A3&rHv(9%t-BXh zmfVyEjqb5@SluA{$$$b@$jg-G+i*Z*W0VH?{T)p@Wd`&fi~NuYYa%^8_NniDDA(K4 zj}eLYeIZ?SjQK}aa%S{+1=h)0@@EzmiGo+G$IZ-#(t-zsWSlG%m^0%-L$nPmf16bb zA}TdQ7(e?lm(*GTVN{);TDN*CZ4{YK@@3gs1iBU=^hmIf55#-a3%d>yUbjRkL!lU* zS<*~XD3Q5gWeN(a0IFOJreCLLhGLCWZD4Y=azZ{(Vl+6~&~*|)6fFvpL4b+$7-aK2 zP)87Q)9_3Th&~W=m`%g2kRLH0t0Fxjc;J|dcMqjVV$7F`^}J1 zD>$b}y*vsWm_Q3GinEbj-H%u>&D#KTVXd%ID%QUXl&#si83(`X9@t9xc zcjk+dhnD@$B⁣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�m&vOL7n$l&3J>VIrq2O~x=>*VAU&t|Hss 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�WRmD21^mH*<5;fX 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 literal 0 HcmV?d00001 From d6db1e7b272f82cef992913d5383d64bbefda0c5 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Fri, 12 Feb 2021 17:55:47 +0530 Subject: [PATCH 31/34] Updated variable name Signed-off-by: chaitali-mane --- .../environments/environment.action.ts | 8 ++-- .../environments/environment.requests.ts | 2 +- .../environments/environments.component.html | 4 +- .../environments/environments.component.scss | 4 +- .../environments/environments.component.ts | 48 +++++-------------- 5 files changed, 21 insertions(+), 45 deletions(-) diff --git a/components/automate-ui/src/app/entities/environments/environment.action.ts b/components/automate-ui/src/app/entities/environments/environment.action.ts index 7e427519ab9..8b01e99b575 100644 --- a/components/automate-ui/src/app/entities/environments/environment.action.ts +++ b/components/automate-ui/src/app/entities/environments/environment.action.ts @@ -49,11 +49,11 @@ export class GetEnvironmentFailure implements Action { } export interface EnvironmentSearchPayload { - environmentId: string; - server_id: string; + environmentName: string; org_id: string; - name: string; - query: string; + page: number; + per_page: number; + server_id: string; } export class EnvironmentSearch implements Action { diff --git a/components/automate-ui/src/app/entities/environments/environment.requests.ts b/components/automate-ui/src/app/entities/environments/environment.requests.ts index 027af364fbd..5161aab231c 100644 --- a/components/automate-ui/src/app/entities/environments/environment.requests.ts +++ b/components/automate-ui/src/app/entities/environments/environment.requests.ts @@ -33,7 +33,7 @@ export class EnvironmentRequests { public getEnvironmentSearch(payload: EnvironmentSearchPayload) : Observable { return this.http.get( - `${env.infra_proxy_url}/servers/${payload.server_id}/orgs/${payload.org_id}/environments?search_query.${payload.query}=name:*${payload.environmentId}*`, + `${env.infra_proxy_url}/servers/${payload.server_id}/orgs/${payload.org_id}/environments?search_query.q=name:*${payload.environmentName}*`, {headers} ); } diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index 52edae8c8ab..b0875c24359 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -5,8 +5,8 @@

- -
+ +
No preview

No results found for "{{searchText}}".

diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss index a6ba64a3baf..5b2243dd7fd 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.scss @@ -41,10 +41,10 @@ chef-loading-spinner { } .empty-section { - margin-top: 50px; + margin-top: 130px; text-align: center; } img { - width: 122px; + width: 70px; } diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index 6cd94d41e8d..bdfd81112dd 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -33,7 +33,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { public authFailure = false; public environmentsSearch: Environment[]; public environmentsName: string; - public searchItems = false; + public searching = false; public searchText: string; constructor( @@ -73,6 +73,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { takeUntil(this.isDestroyed)) .subscribe(([_getEnvironmentsSt, EnvironmentsState]) => { this.environmentsSearch = EnvironmentsState; + this.searching = false; }); } @@ -81,43 +82,18 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { } toggleFilters(currentText: string) { - this.searchItems = true; - if (currentText) { - this.searchText = currentText; - const payload = { - environmentId: currentText, - page: 0, - per_page: this.environments.length, - server_id: this.serverId, - org_id: this.orgId, - name: this.environmentsName, - query: 'q' - }; - combineLatest([ - this.store.select(getSearchStatus), - this.store.select(allEnvironments) - ]).pipe( - filter(([getEnvironmentsSt, _EnvironmentsState]) => - getEnvironmentsSt === EntityStatus.loadingSuccess), - filter(([_getEnvironmentsSt, EnvironmentsState]) => - !isNil(EnvironmentsState)), - takeUntil(this.isDestroyed)) - .subscribe(([_getEnvironmentsSt, EnvironmentsState]) => { - this.environmentsSearch = EnvironmentsState; - }); - this.store.dispatch(new EnvironmentSearch(payload)); - - setTimeout(() => { - this.searchItems = false; - }, 2000); - } else { - this.store.dispatch(new GetEnvironments({ - server_id: this.serverId, org_id: this.orgId - })); - } + this.searching = true; + this.searchText = currentText; + const payload = { + environmentName: currentText, + page: 0, + per_page: this.environments.length, + server_id: this.serverId, + org_id: this.orgId + }; + this.store.dispatch(new EnvironmentSearch(payload)); } - ngOnDestroy(): void { this.isDestroyed.next(true); this.isDestroyed.complete(); From 504c7674dafdb223fe4d75055400481f78564294 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Fri, 12 Feb 2021 18:40:21 +0530 Subject: [PATCH 32/34] lint error Signed-off-by: chaitali-mane --- .../modules/infra-proxy/environments/environments.component.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index bdfd81112dd..aecba581fa8 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -91,7 +91,8 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { server_id: this.serverId, org_id: this.orgId }; - this.store.dispatch(new EnvironmentSearch(payload)); + + this.store.dispatch(new EnvironmentSearch(payload)); } ngOnDestroy(): void { From e22490c62ed6b37edc1491dea26cc726bc5e5aff Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Fri, 12 Feb 2021 19:42:54 +0530 Subject: [PATCH 33/34] Added no list data changes Signed-off-by: chaitali-mane --- .../infra-proxy/environments/environments.component.html | 3 ++- .../modules/infra-proxy/environments/environments.component.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html index b0875c24359..96cd8b6d521 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.html @@ -8,7 +8,8 @@
No preview -

No results found for "{{searchText}}".

+

No results found for "{{searchText}}".

+

No environment available.

diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index aecba581fa8..b57a8f19e16 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -34,7 +34,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { public environmentsSearch: Environment[]; public environmentsName: string; public searching = false; - public searchText: string; + public searchText: ''; constructor( private store: Store, From a65770fcdcee2d203f5b597fe4cf05c3353a06d2 Mon Sep 17 00:00:00 2001 From: chaitali-mane Date: Fri, 12 Feb 2021 20:01:42 +0530 Subject: [PATCH 34/34] No list data updated Signed-off-by: chaitali-mane --- .../modules/infra-proxy/environments/environments.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts index b57a8f19e16..948eb889a7d 100644 --- a/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts +++ b/components/automate-ui/src/app/modules/infra-proxy/environments/environments.component.ts @@ -34,7 +34,7 @@ export class EnvironmentsComponent implements OnInit, OnDestroy { public environmentsSearch: Environment[]; public environmentsName: string; public searching = false; - public searchText: ''; + public searchText = ''; constructor( private store: Store,

jln#vh$NxaVcjwJdp^ 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\jw@<$1n9>hglbKN&^wx$vtqW(tvUi5 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

jln#vh$NxaVcjwJdp^ z5zNu5_p$YpGl!tFweN`TF~NtMub+K7eqQx$C^oq8ik}|3wP~XO`+9RB9({?4J!{WB z`+dw#>ceYXm0?pc;SvXA1_*v&{vGz|d{^>9CGIe$>dX7G)mu}g$v>15jlE6de!Vwl zJ`v+*c@1OYzGzdtpyEFL3Xd`FKC^b@D>L5L*FBR^{d$4Bjqp;NGQ0Zp{wjy|H18+F zoA~RIs%^veg^91{YES5(YojE&Cjvf~((b=DKcBvd<1>TtE4%x2#U1}MyoS17D^2at zCxHHRUmwv1HNW~tVMw^t|35d6W5Z;K$;lc1vw2L|#LLV~6we}T9_K**`(|65RsP@2 z0M~Dg2}o*mzh8a+ec(mC>=2=hWZb zU)qhJDZQgigX>)HNn6Va-B8QdzRWJ-wYW#U!2Ly6P3|+dtqxJdmwM7zBaPA~q1BSQ z%25Gy^SP#4thvL#%f^eLR`1)NshZfviP|b34d7O`PkwE1{owv-u2Mv^UvY~3xq9{T z==`PDlSirYr&>Wh4JIJ3>&U_f=u;Plb>wMr;gCL=yAwEs@At(g>yLff_P(8h-nJmy zXQ@`i38{m;sy{odBE9)PkbMkI?ZpO1MchSY#0>a4b0AM5oj0|J-7U#!S&pnM5l?|G z1~D>I5kv773g=LvOXc58WR4R21u9xv_XHB|Ifxo3?2zv~GvE&q{gO&=sOXfOT+Fs1 z^pgqDogov9pvr1U@|(L!J2NQWk<+b&>jIg9>86?Q=&Y%dq&Ac{bMKzC2wEmMJ-tnp zOqh$#fhJsX7C9$h4he9Fyo;yi+Pz;ISnxsxSXSYFz9+CZ)H*?(ziPc(qReY;pWZHG zZR^N~g&u0y<-UOFKbk6Wts8mwVuzB>Ks=Tzro~qxZBQuV1+vUbe7#Q3$nJLY28p9q z%|id1%H+3tEfsA)-<9chbS;?th`VC`SlJq7I}OKCwY)P15<{*jYaZ@p91*2@T}t)R zY`)O-V7>rt_ZLbAU}{}uC{M&cESktj3F~t{>*l(Bc|6jvrqo3utLo5$I?koa8y2rx za%oeWMm-cHCgON~!^gDdT9+!av%EHLIM07V#DtfB!^aJ&sF~E|3#>yH)~qy`5cjJn z@cAXV)X!ae{#6+5?}cCRO4O&yExMF_@c7^_)1mlPSZH&%jJ($l_cgQ~Km-ZjQQhhH z?J2t0Xg~xR6H}N-lF=&IWGkkfRO$i059z+atNO&7lpJ;YCiw*=d< zg6Q(5AFY0R7g0(_R^q=yfHgX;Ev zzSyl}yhz===^*XwCQ%||r&9A!CK56UzC=G(V7J@S6y6bo}$ zL#K5i)rDSDQJC*4JlHY`uW>dU@-P9G;4wZ5L}sM%5mCob{xEm$vhEg_{nSm+gUi0=Lr;Uxpu=hWP9&>(Gm;$cthh8Z$! ztxb4vTQHCUqU9M3(23OXfg54m9NcYr3( z(bP9qb#(CNU~*dsc-IC+s&4a?(izP$XNMya!r-=$kdPQ6d*UO;U{Y%cm>quVx~Q^M zxaRcP_7@Z=K-NEzetCE1KEk?|g2pGA55?jOB{uW|YJKOEpmRf7Xl^+2#O-P*&gFtT ziEuQ(j=_LIB&qvk0$E5OxJcSQE?LG0(6mRK~O^-ksuZvAW5!u63#wZR#AM1>M0iO(H}xYUknHqlU75B zt|dDg;2dnLfs{7!8P?w{jn5zA@AsaC+UX*#R~+sNk3osAhIZ8@=w`VA_BU>tItT}O z#op)rv3U}^!ITQO!BoqG^fi9dv{X8GUagGEih2M+1}p&D%wx6abJi!Orbs%nS@|sW z7bdpV4~6NH0vEbT|4|&FHX5g2hbTEka}Q{bR36D8`tYvw08p7poVEqmEN3LmRI+V$F zzFi{`9j2ugTAD{5+m(nV1QQ33B)ZfV=>y&pxyB?FfP4YnV(dxUd-iCeGHoDVsz;FQ zIz9I_HlOWRAN8nqF^owOYt-FEB1EUd&iG4(?{bt_7C22aDAC__g9m7yrZw+{ih&ka zc2s>mo*s+>$keQaA@@&8Q_ZlQI?UR%!-crBuyT4Sk*snr(JhSOM(f;UaNPKY2>0?@ zqy081?b~;^KQ36<$gD}ri64KRzXVhcL;zJzGwF0CCr0O;H7Us~mP3!AMDuK#4n8t- zOgflJ)_8$nUGIde5Ry`8Gf0W!l!GuLxFy+QwRELBv^Y3KjmDO=96Zp*#)c&Op|h?k`f~m{CpGg% zR2BCmnBKKxbw7FoX}>MWHnwhql9#-MBiewkia4ZI$jENm?#j?cnF3nK;9Y4FN1q>q(H5U5rb+=WVWuCbmF5LO92B8sZn(opT2d00;-r;y?P%6|CLEjT}M>2 zLNPd)aqZzAn+(EJUzw>n4ZN$<36!S*)K{@WQ^of1{;Vc zUm663YK)i#?HXRwGEv*Ku{?yZ^!EP>Cg0_vRP4$poz?5#vhhO43k6w|0ZP?h@lkRV z`)y<=^$DmTH&avX4lJI)CvQEG(S3#2;VeeJ7Cxyq4$NMbB7b}`T6V&X^XG9FFanOQvlKpKsAKaA&XEI9ynF>o~D_szgJ%h!s*M% zITHe8MOe_10T6g#HO7^L6%~mG3oL-?Jy60rDC%A0omr~8t!Ac z5K2P^`V!9?{C{v5{D5bGa3Jb`I1Dc@ZvxgpAR!2>1EJGSKqZQbi^9Uf2>1m7wjdxB z7nc{6Rn-JA;y(@coE!pLLGYFns_6vYg3x#;3`Y}a3<7>Z051rX27$&P;2H$df&gb^ zWoHxci;|L3f;gSv;3iy0<1lgmgLEJXzz1Q`nt*x`hz$aeL4Ys_EC>O@AXv}|Eq6k# zoq$~I?(7gS3&LhKq3-_s&!39QN|Fm(!@j0Ak^)Lcck7m>riKQ|XI$6k4vn_v78$5) z-G4>sQ+2XLBuX-1N-;5t)vv3|8=EU@YaN<&{H*+nJkv*no$IsnSVb@x-oE|!-wmKE zM~9_r06_YSUW~wD@aFTtC`hig-Isfj8c(b3OuKRh;-I%>9N~O}eTgEXUaCcvd4nl% z$6>jrh>YNmVwM{QU-bJwq#@80Sr;H}NR}$lLLh};S%GSD>-b97m(G@zMy0u>d%N^S z>Rd%W;suk<)j3b|(F3|kEkD}c^mUv+Un8Yz@I9p%t9j*)Yu5k!OZEs$0_=!jP#yKi zxkuf_(xcVsyq3H%l3KI}0QJ<&4mY4$e% z1I;^sj?a-8{&mq)@MCk3_Isl0wba`74Kq^5NZpT!u}g4bY@GAm=hw46pT@TqYJ7G) zC!!y$JBD0dMEH3Al=KZ!KHq+q7CONre(O43ofPUxdG_4Sq+wLytMf1F-3b5*r^vcK z=+4@jZq4I`3DA|{F7ItgE3zdN&a=q=mPj?GCmc4%kE0bPNwtmnD>A+DVVbOZ_MK32 zD%XdsAID~<-^t`wt7>8@ z19YoOehLE&2w&)XPV{{XurX6cRXpuwkia-CxC~W~1xovKDh?tR2Mi%@MFogPkHqh^E7yf>?yCs3{Pe;v*~mbMS&6Zxt`sdd>P#m@u*)qS$X&=&cprzl3lyk_i; zJ8Udr^ZPpk9$e?2uV#rA)3i!oCF!ZG`3+PpYd^&VAMwdocmGJdI%ra&JH)B!1eC2x zuVwT6B-F>Ae1+UVTD5-G{c1x?{L}hbI*{ea&@1(R{u5Z>=C5^n{XZ?DL#0AZ@Is#? zjiT&c77_7ph#kblB%3u7Y;#pdN@En>Z2K4rW?hINc?dw0!m$1_89I=JnywE>1c@e` z_QO*=nr!Yi@x*ijt({3Xd+i#jSY{UR#vbrt!2>M=oe%Am2C&TC_SpfB5(hc=H0BHV zt&)KlTqA%t%DbXKSqC+*qe`x1GCuQiUMi@QjCYQd3LBLp`7Kuda~ElLHq6rUkHUK# z-2ln+Qy|&Cl@`^T*{By0~G&2y;|YL^GOj2T1LD$JO_ zP!>G7mp1a@DdFQe;Jl1#iN8fN2uQx(66dVe*Nf!`jV_aMNT2C>=tyT2=G%F93y)dO z*b%Ry4M=K-K(CW)yzQPk&HV}c#Pd;>8Fuu6e=|(qsUMSZC8w(=Mw$iOspL|qW(EHC+8ckU)XL?B zVJQN3C!R{WM}C2QiL^jUr#R$-9)H~Yb>G9xOa_;R6(~`T7#hWvGWx05V~tJMhhz6K z90oUIg2%gQt?uu7NL^st!p1XGCDweYTJqeuZzZBtQQ+JbqAv4IA#g})61^m(L_R)Y z&?a571W2rX*SkfE{Vz7uCyR*2nNd2CnE|XtRLs&+gDf0xaQv=&DBx?+bajbM<%d5w z`6Z&?q97M3hQvB?)gX+6FeMg7Mke3XYa*yk#68-@IDAn`PcU0!DM8~hbK(y}YF!?w2@`GSS*&q)D^4|Dzzgd6WLI<4vnw0>}KhqH^_<7TSk z2?=^>x}IAxaO3YPh1%F+HpOwx{D)Vbjy|Hli;sv-)f+yEwyl0={$(b)hNid$4T>)G z;U`~xV8zqU*HP^80QgU8ad`0~zDlpl_;&Yd)SuYH zrsQYhzEhj5@{hh1t~-zRUfk5rQ_}bV=GQu&QoUPq65p$q4XE<5bf*m%J->O(b|h+~ zuco+BWYIAoa@77Z_;no3YxSh(A@=gT6fADvOBI*E$w8_M72GU5xbtu}E2&KF31z0U z*A02h>eGU@#q7qDyT%4>X|`2gUYK!j=!m{xtvQ@*{j@9EZhTl5M0@QSp_uUf(ceS) zkJoKR|1La-UI>rSSUur=(xN=rwyXbxDLvt&za`E)vGmsL^~vIq{%@FU-%XHp;HRb^ zKU*zBcyyP2zFHpcn5iBCY6sr+m_E_>d{-+6n%W6OK#=UuKmtwy#XUwD)5uPcU!*+X zjOFE#C7lSyuO%cHI6%$rYguE7WG@7r&!X5de22Y$tI5Ibvuter0crv_sM&i$#(cbl`69ROh$Sfn23b8Z zGBa>)@Qf|u#a`+w0zhoqe(!ajI4``fRg|b`)>FZTndykvIr~R_3krz{iJS$4A<^19 zs5MAL?KkbF!7!h@8hOr?YgoirWWsa$nEhsPX5|NziXYgN*|bUkk4fx_@|E^U z1=RM;w-%za6XMRFVaz`!PT!3Oczu+71J)$|Xs8suY6sY~(wY=bBKPBcP+|&$Jaj5a zVqc?vU98!;lWZ5s<4|Jy#W`8iB_+n!Uw||cK%YVpdIynq6SutM_Qc^Q`@6KTw! zicX6=&I^pr|G1QzT9Id}|4`CUnFgb*{fR9(Nz{rbkfkcrB zANJjw$Yct$`&1F>M@^s>KVyf>bPBr^Bj=#7&9uA{cjY1z$)m@plFX<8-yx};=Tg)y;b zQ0+TV+(m-4UvV!!;QbTMVy(ILR#*HeaWE}y*DqUq_$HTsQJ}OzFX4CQL)}k*J@Ou^grsk$1#6!24QV0!5LmxwXed zcN23y=jS_@dTRYCHgd+Yp6eUkF8&87!9*1&9y4mcxYOWL5*k&aSXzPs!phF#jiXd@ z#q#qh*fi`wDc=CHez~NrrQ(aFJ^7CJzJb)!ONm^{c%#aK=!jbPwah6>w*lo{t@-QE z)L(rB{!#X^EiI=IEB8JIjF;YRUnn-vt2iGjX9wMYAtGuN(7ZwR($y$z=i)n-qkHPr zDLYY>d+FJ0?|5H{X-K8GbSPI*ij_#|+V@i=91m6fZLP%Dz!&$yM=m8qkE;DuIG@_z zp|Q)|9t@$@ullC~)jZ0b-vnCvRD6846kKfrEJa;A?$zI2s;l(`(nB=AF;uav z*WYff{c-z#X}yN6OM`b*!@Ns9=!NBmd4e4W#DSy4M4SVD#IP|9F5ZtUt7~*zYRs&? zb^HMQ$};P%YOQK8$jwJx9-r)TMf+Ai+uHwz`*XF1?w6)3u|{Mx!*@S*$~$FV>CK7J z^q{xub?J3V#VyhP+!y;w-a{23Vy#apxdi=HW!K(^XOzEJZ5`_>nXe0|@ux41ZbH?7 z%*EC0Wuk)G8Z$Vg8u`^&brWyvx7Q!=7mO%aG*`D|WY)E{j;&+U&~p^JUI**Ts%(ELq`K;aAF#kSRp^lM(`9X!(FMi5 zun;iO;Zi4fqm5VQ*iBcCJGx?~Hc+baFJMp;=7-(j5|06C=&rY=U0Vko5mU9wr?oO}pM}kPWYy@_ zG8Da|aVjI-0?Ul1!wOr)-F&dFJ8CTA@XrZatXecIrAX>1b9@TbD#8 zBdk|p>8wx5zSmNXW#K@k1K#U;jd^k1s~YdX?+uJm>2+D|;e@ej0Nz>D)jJz>8o74< z#j{#4WO^(!dX)>(nq=~yg60*6Jl*;X>5C7w0Q}I7OwLAsSpTbI#y2riM1W{pn_&QF zzxE-mouHgNrrkGYnBIKIr;$>b0lc(7C?Y=Moyn-g*;{?h+`jx25gPH zCxBzvCPbwtXy^^+=|NA*Caw;Lq)`aaDew+I-ll5;Fr^1FZ=k3cB?{!z2$uSdbfcrr z*svM(eOgxziet-SqzdHbcAMmtnCvy+mkN+@QW*+mFME=|ICyQo_BmS-_FQ^|Z$Y%sk02lxO?tg?3S<;%It_}*C57?xw= z&36{^XQHhh1%K3T7GBkW9&?DmaqNzUa}TnnSWW=e0m4#dgHJ0KY)q#<&<`d^ux9>c zj+L3sQD@JSc*x5l!e+u<6|nfs@C!JBG8hG(+|Q33n`dPgp(~uH%UTq*Z}T|;84)iP zS1gSM*Spe#=ASL+epn9IyYC|d27X^Yp;|${5C*(l83QgeQW2HK@GC=ybOu%uJ0>G_ zai%ihBZ|Vr-%AUB*)=hpcWc3g>dxELY^#BEGME{LZV3xaYj7*Fa$6$d}BP zzU5K(IK*8zzoft68)TFM>%o)*J(JnuBUmkWImH_<=ZZbN}SvRf%*rFX#hWK z_G?vxd2yqgTUXKi!Ze%XE$h1ySdS&XmbFklzbXDz+RS%f7!qg^*&F_2>$NqDuv+-k zK(C6?pr4xaz!h%=<5nm2$ZdBTZb@zq3@AXklWk?|EAlQZfyS|NU2ObYUJVFx#H+KK z(9JRBq~S~w1f>MDiHvXScWwq1z5E-$C1kPlOk>l;;Olif$ia3uVr3gC$pOX#>2tSl zH*_3*-%jKO2XS)y$EG(^@7*6C_y^-A`{twRz7x^OAT-M3O|$=Ke6}o`-a~>L`op9~ zW9!3V&kbai9Xyr7z5iZgpYjLwtPL0b&WG;oz4(9If&d_@N@2z#*Wh94WE1Hp9PJsm&n{ejuN&n1LdJt$cN#ireM=be#W zRoqF_(l}tq8J^KxxrrT^>8yKSy4>2e{Db7Ev~n-%bT$g8OdEH!ZTr1_Jbv(agXQMO zvgA?S+ruKyE@9Nq-x`BEu}vNM9D5=aN*eRzQgtjZr1!Jf#?nsoo4(gd9_s?Zsc3d* z4xf^sT@9Y*hDug$<1@YN(JL;d;z<_k?o-)MweqiIi-9?YsFMdgwGw(K?@S?vkBg*N z&sjLILbD5znwgHD-3%wT_^O~P6|9obPSKQ2y03?Z$Bcx6GX-uZJ$c0GYc;U+R;1|- z__x}5OZG9v#DQfjiy}sxN8~cb_;hT9+Ao{AO6iAq#Kpa;3*B|_el{~1e%Z(PcTeZZ z6?wHw7s!IqRqTi|%5v*TOvwhux9)w2?lB`HEu#!BBZ~HR$}a$$$u+CTH7gQ4{P`M+ zzy9(?leQZ1T6vA>4`UmKYE0@L9I1u63X|9N(!l<*(wtU#PnYjN)r83!`1BitzwWyM z&>}qhvvRkQ2pK4N@GBXo0J!qx?+Q8DEh)hNh|nXW{$oW2+@kp3BJ?y01cH)<7K#AL z=f@RBGI4Vw2oJFu2(j9_+H^vDv8A=Gy_ucxW{VTil#u~ZC>Gs>BP97X7#Kd**LQrp z^`FP=C{4P#wImG|890mJr;?bGul)~DDpy;JB7lfIw<>=qklDO+RKP7khX$ym|r z)ripPb4)PpgQNvBls6mLf!9B$SDyr3-aJStY2%R~vAG5ap^MM7v9< z%tcS#T`COu_GN_l-Y-@yDsZvl5Ha);!e0z+J?aV0DxE2osaAobGSZ&{x{{a}5vIBu zcQC-p>R+i{w0TJn4BlDme*b0eW_3G|UEInM@?P3E2?GCGkR7R(;BFCa$ zt#l6&i!9^#dozMCnmsLpSjNE+GI+HFOF0=4g$TwUh!c6Ws7WH77!yg$kF%8Jg?_Zj zA%``)jsQd!?7Am*(hD);2?qHLH`5{4@NyxMa#cHOnPqw+%0^T5st@}~9SO8@vVZe* zH8J5lWR!M+UBq5dAF8QX@TJks{{Y2RD}W=t$igjZ{2QVB-5xS)kO}DRasMl}2SlKN zQC~H|oTIe2Am6kh1huVg9SscN_Z*TFF}_iK3B#aMb47njcB~ zW6EU|%9)6tGavbdR+72COY02xx-ai8skRbV{I#9Kbg``vyZ}WTUky<~eiW3fu4h@q ztHA)lT_Rx((5G0Y(>D9t#qq%$?8gdFOcyOTt~Y*HTY!Hk#gpCl&YcAuy>nSEv$P`+ zNQNV^qjF>|YV5l`gH`^xYsfY~c<=fW`k;Q-mSaap8xIeY)5O_wT?`IXmq*@$9zEnC z)zyi>VNu*0cDyV@gKo>Fu^(dc1(Fu(kA7FBZP#6bBwU7Oz>b60><}9Bq1s!j4Bh- zMM8K;IO8yJn6dHy$gv5zBB9Dn7*ZybuL-H+f7{%I#pD0Bxe1sXA+#ifhlELFLK;cP zA^#Ig;yx2nK|(f22oeca?V;h(|1K&Ml0!m-*xcNdnvz23fD;y#34ZLH+}!`JD96Vq z{J$%*tB{Zv(Y1aZ@P+x2mDcM2Talf)s~T}f5WjbxFhq|GMj?Y_0_0>P`DFR|z5n+r z#w$U8VO}JCRyLuno*P6(CBq99P5y6yr$+}96yyxeZD~aZV}qoGWfkP*>1zI?$R5$- z1|bpbBK`gaGdsr4*l>!1urZ=6IcS zcI~UMUFdQI^60cGr^iNswb_FgoYNQ0S|ev-wMGc=a%`|`@iqBFiFeEx38zE;ND9Lf zY^LtCEm5+R_cj%;gZ9|XCq%r2hvw~~$xJ92$>ZVI^x==DV)X(qQT=I!R&|wZK*!Sg z6oES!yk4UlBP&&B>6;-<5Wz;dNw2x?P_Yt@aw<+3u@sMhXap>CU1LaMIwQ~)fnCwn zn=WXIOhA0|iSGS4*;{HkxZ3B@IJszd9d!TB^f^7;NwM|3rL@@5=aHRb!@<&A_aDrd zsznsNgePT{0$A(kX4$)stmDgzR1|}G+I-OJmU9i(398wc;FdQi|SfSz5K`xR3J(VH9ML2jrl#CZ)3fGS0x0LcjM zkgIb%Qz!)m-wi|9Rip_|I3Uae6miUir;CJQOCP1RFovGa$ND<}Hz(!hS0eDj5_j0O72sROV`%KPYdS9>%tpdxaTC4&MLr? z;ZldnH$P-F+C3zbyDFE)YJUd#X;qvE@gv*L9dx@he{(x-r~MTpyG;WeNcip%EFbW= zN23_4W!E%`z29BYYp3ZgW$?{2hhBERWRG*H!E8JV46ojeEQa!L$PL0;GM1ek6dP2{q(o|kr zPCc23(Uj9>=r^4E2=n0}dnWY(2+j*Cc)qMUlKK$nW=!8Lbgw9IX2sW->vDbXTY~Yr zs($(xa>_GmT`(Wtj|V_j__*9g<|FE;(exC1q_BnF1H{LKkx86S#Tewz_-mh_W)b0b zjT`S4M%rz{KrR)wWXt@SyDCfhdt#lLo>w)Rb_M#Ou%GVDE9~n-&tJ?_b_;)Qm^3e; z>R?yfRZk~g^fqlc+>g)-Jjqp%O2U3^GQD-;LxuD;J1!Nc*^L~`7) zAZRNwS>!~R;$PCl`|b4MuS8@Tl?^1pi_wq&*n*n=c}~2(%!M-N@32z|O*oBHl0=L|n2V(E+%X4S`MF5wO>>igc9K5Yn`%(BQ|~VL)K!UK14_NVngZ<6vU)dN zsAj*M@9Dd}!YIBd;brV&l+%C^1b6EZC-rthQJ=;iX-3z86`UNHtcP)moD9eFr#<)f zk_$c_b{)bkzXKA}*yc)cLy>1*CV@hvUqc6D4s4r%Z1rKGcDu1WY7<}((LLfVOpLPUhFe+;M0)3R8TSY z(;cN?esV|F!VbF}lJC6oTF7>pj{rC|INQ3t$dG@%-#J*hkKCe_G(0k<;3lRu><~vb z$!nDu>_Z+hWRPsCZ0%SigifWs6E&6&!ZLP0wD-+zNq(%!7)k6;W!iC~_R`%>2^+J2 z%lQZ&q_;+7t!~*0)dQ;$Mq|{~8Oiq-j0?k(ZU-%7Dfl6}m$34AA6j!|Iv7TqYRQ5Y zdw~>*?<_qPD5{4K0X!LdmJ}7QvlQ?mf|Lgq2p5Me%a`Si6b<7ZMl*sRD`44Lb|p46 z7Ipo66$-A?nfPDlCP8>7{<X9?%>Zk6ULSx#e-KfNHYJrwm*8X7SRB?fAvmg^lFTomwC%agji9gQ!J;u92l}!E zqH?l}LT`|FSoN;g+a8Ujy+np*=H_rc#4LTYO{vY+*&W|dF1yZ`0dT^l${5@0eG5Iz zezxR$QyTQE=9JQcFs2==y1L_~}v-qT5RB^|db!39A#6`m6d=@a6&kmpbOg%%SMBe7V0J zgSBB3hre@vaW?JiN8zR`Bw*6v7j4!oUK6?MlF+G4wVF})d*xx-@}Z9x^jv8cG~U#6 znO55i%Blk4G%MF19}O<*O!xUvQ^dDGB>Hn9)6|)I}y*c2o5;wqI*Yr z%58TrFST>+-f0<$;)9d!f9`XL`6KV%|6sn8OApYki#^i) z`X(?`RmJ4H0CiNV_j?gZ_)j(+`x9MzqDqG9i#VzF~9Qg2N;~w$j5XCtQC_+-cpl5Dd zezc{7c62FtBBre6Pb+{0@y1aX-7P|PmH&BUZW+DX!0oQ z@03+Q_$pa9x%ap1=5$vQ#%Wib75sSd@v~HmZ+@1_6VKJ_(TY9w%@1zhnb&8RTz>f2 zyTF=GiwUvNF@<<;d^Oc?{N0(FezY3^(qJzu=lj;vG?sZqlwS`CeKqq;R0O%Tlr^xE z-U(p% zMu19|2L*2>y@=K6k9@3rUX5A8ktWD?^H=T9-XGLh+#EZCk<)=K$^NF#?tL|XMZX~R z_)NV(^YvQSdtzA&ytxlg^AiC^a2A2)qCYNz zc0ABOr%>d1Aq(fBmFobHU4Tt0oHkt0nM_j3Lt4umyu1^(1|s9d8Ec_IoR(ou&eT4a z;wT(Y8mB;ydHQ1~ys$sQ%@G{R`Z8%g>^&(Q#tNAwj(0$Nigc57F;QU(ch)rx)kSx0Dfl68MB!;4X`Rp03!S zv$%ii69z8MqmD`4rt8&b@g~YmUz`V>oZ{3ua zdl2A97^z3_L9yRkWqV}Wqd;W|2R~7~VywPpDj)^G3WpWMr=Ft{d$hFthf@C9C5NAY zR>{OQUD7^lfnNc|De=ryWNC>Y<>~~n{4Y|n&5SZE6ukXFzGA$Z!`1f28h~2l<&e~hFmzhMNl0Y zx;P|u)+|Vg^9o|hcF7I9a{{h>oBb1|hdxnk*vhu5jS8qWJJa=q!9_~bJ`Irz3nJmK zr{vJTKPAdgy-v_I{VjR(XHVd6Bp)>ZO*IS~#|b?<31(myQ0NhwPR(K5@z>Y@gI~Po zDdpcJ=Tn8~3y9^Ad&IJ$D7me%|4_-SW-w`MDJp1~h8ClFb1tklNd#n~UMeB?0y?0J z<&MnO-|$vX&3{4siFnE;NGG3@9>i426V9A-Uqw{XBVD8xU`X-UT8~#2qAa2XP*WDWnJn~0bm#L*| zbfD~Fo@cr4H&4HnelTMsc8JV)ooD__&IZ9A_C(UOE|lMRkd8t z&Xaypyno8hwN?EJ{i2FO=3UJ?D0i{y-0RU45VQe)Bc@jkG^3a@1#Op9_iqrktvOJC z$RW{%^psEzd^IbFMG&qsDd#nhs?A;$N2C|$g;lNTc}4bmsQ5vC`mR7bytZS#SVlZg zWQ0ZIpk}VWmNz4~hlH!PE9e%71ri5rdB>h(MXeZZEuqRDoI_pXS!g%{ldNyZdRVU% zZG$`k-AqxiKp~uu#gXK8x}Uo0?MLkIEmdgql{mLGe%K;Kq_e_+MI66v=zSYowzsfn{N!=c;St@cdy2>Tip(}pt2meJ!B&&itlrR)VE7Cc4i zna`+G0fAY`8O5vR$=%)u;eq<5LZJ(-K(#Ee8%w*#YkCMHds-Jyvk*akXQTR=ceHVV z1NuA~0)$tMmv(2Oly7<7S|e~Isy(Vr<$|UGN(DV?d#&=OG{Q_hWum0#pLL937-oqDzUMl16I zj#RQ57|;&%IT~;z=#)H21325R5Me$snZ{zm5k~_~ghut6i5Mi@)0yS*LwY9)_xC-( zNI2LYD$8R+?5Frd7QzrN{*f3-CVMnshy*p@GXd9DtdmjcrlQ6*!&C_1O>4QQ2NW!Z z#K?M39#Cd_*rY5J469-QzuAd9sldEQ*C#biq`|llUbgHQ(A|$aOA1*CMQ#2I9h63G#v^@h-w>w6r1cn*li&G9TIn$azRR(@?^#IVDLbQr7^E zES`I(wRYXNSaKuhKT57Upu4Y2OAp8YgR=Qm=Q|z>(f+l#k;6i&OeR&m=rf5C=DtIm?+-8BLx7%#wf@T$\jw@<$1n9>hglbKN&^wx$vtqW(tvUi5 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