diff --git a/.bldr.toml b/.bldr.toml index 3af3b47d2b0..750d3e441d8 100644 --- a/.bldr.toml +++ b/.bldr.toml @@ -194,6 +194,7 @@ paths = [ "api/config/minio/*", "api/config/nodemanager/*", "api/config/notifications/*", + "api/config/ocid/*", "api/config/opensearch/*", "api/config/pg_gateway/*", "api/config/pg_sidecar/*", @@ -408,6 +409,7 @@ paths = [ "api/config/minio/*", "api/config/nodemanager/*", "api/config/notifications/*", + "api/config/ocid/*", "api/config/opensearch/*", "api/config/pg_gateway/*", "api/config/pg_sidecar/*", @@ -511,6 +513,7 @@ paths = [ "api/config/minio/*", "api/config/nodemanager/*", "api/config/notifications/*", + "api/config/ocid/*", "api/config/opensearch/*", "api/config/pg_gateway/*", "api/config/pg_sidecar/*", @@ -943,6 +946,12 @@ paths = [ "components/automate-cs-oc-erchef/*" ] +[automate-cs-ocid] +plan_path = "components/automate-cs-ocid" +paths = [ + "components/automate-cs-ocid/*" +] + [automate-cs-nginx] plan_path = "components/automate-cs-nginx" paths = [ diff --git a/.expeditor/update_chef_server.sh b/.expeditor/update_chef_server.sh index cc2718284ff..c2757682508 100755 --- a/.expeditor/update_chef_server.sh +++ b/.expeditor/update_chef_server.sh @@ -42,6 +42,7 @@ file_for_pkg=( [bookshelf]="components/automate-cs-bookshelf/habitat/plan.sh" [oc_bifrost]="components/automate-cs-oc-bifrost/habitat/plan.sh" [oc_erchef]="components/automate-cs-oc-erchef/habitat/plan.sh" + [oc_id]="components/automate-cs-ocid/habitat/plan.sh" [openresty-noroot]="components/automate-workflow-nginx/habitat/plan.sh" ) diff --git a/.expeditor/verify_private.pipeline.yml b/.expeditor/verify_private.pipeline.yml index 3424c5c11b2..40aa97d13b7 100644 --- a/.expeditor/verify_private.pipeline.yml +++ b/.expeditor/verify_private.pipeline.yml @@ -929,3 +929,29 @@ steps: executor: linux: privileged: true + + - label: "ocid" + command: + - integration/run_test integration/tests/testing_ocid.sh + timeout_in_minutes: 15 + expeditor: + secrets: + A2_LICENSE: + path: secret/a2/license + field: license + executor: + linux: + privileged: true + + - label: "ocid config patch" + command: + - integration/run_test integration/tests/testing_ocid_config_patch.sh + timeout_in_minutes: 15 + expeditor: + secrets: + A2_LICENSE: + path: secret/a2/license + field: license + executor: + linux: + privileged: true diff --git a/.license_scout.yml b/.license_scout.yml index 888b97a605f..0290808f1b6 100644 --- a/.license_scout.yml +++ b/.license_scout.yml @@ -11,6 +11,7 @@ directories: - ./components/automate-cs-nginx - ./components/automate-cs-oc-bifrost - ./components/automate-cs-oc-erchef + - ./components/automate-cs-ocid - ./components/automate-debug - ./components/automate-deployment - ./components/automate-dex diff --git a/.studio/chef-server-collection b/.studio/chef-server-collection index 8fd3fa386b4..c32fcb0a7e4 100644 --- a/.studio/chef-server-collection +++ b/.studio/chef-server-collection @@ -392,6 +392,141 @@ function test_knife() { done } +hab_curl() { + hab pkg exec core/curl curl "$@"; +} + +document "test_if_login_working_with_correct_credentials" < /dev/null + fi + + # Ensure we are binlinking to the same version `hab pkg exec` would run + hab pkg binlink --force "$1" "$2" > /dev/null +} + +document "test_if_webui_key_is_patched" < temp_ocid_webui_key.pem + + # Path for erchef webui_priv.pem file + erchef_webui_key_path="/hab/svc/automate-cs-oc-erchef/data/webui_priv.pem" + + # Compare the temporary file with the erchef PEM file + output=$(diff "$erchef_webui_key_path" temp_ocid_webui_key.pem) + + # Remove the temporary file + rm temp_ocid_webui_key.pem + + # Check if the output is empty, indicating a match + if [ -z "$output" ]; then + echo "The content of the PEM file matches." + else + echo "The content of the PEM file does not match." + return 1 + fi +} + document "ohai_time" < registered_oauth_apps.yml + + yaml_file="registered_oauth_apps.yml" + + # Extract values of attributes + name=$(grep -oP "(?<=name: ).*" "$yaml_file") + redirect_uri=$(grep -oP "(?<=redirect_uri: ).*" "$yaml_file") + + errors=() + + if [ "$name" != "test-supermarket" ]; then + errors+=("Registered OAuth application's name is not patched correctly.") + fi + + if [ "$redirect_uri" != "https://sampleurl.com/auth/chef_oauth2/callback" ]; then + errors+=("Registered OAuth application's redirect URI is not configured correctly.") + fi + + if [ ${#errors} -gt 0 ]; then + for (( i=0; i<${#errors[@]}; i++ )); do echo "${errors[$i]}" ; done + return 1 + else + echo "OAuth App values are patched correctly" + fi +} diff --git a/HABITAT_PACKAGES b/HABITAT_PACKAGES index f2e71ddca19..a89442d6e21 100644 --- a/HABITAT_PACKAGES +++ b/HABITAT_PACKAGES @@ -58,6 +58,7 @@ trial-license-service components/trial-license-service automate-cs-bookshelf components/automate-cs-bookshelf automate-cs-oc-bifrost components/automate-cs-oc-bifrost automate-cs-oc-erchef components/automate-cs-oc-erchef +automate-cs-ocid components/automate-cs-ocid automate-cs-nginx components/automate-cs-nginx automate-workflow-nginx components/automate-workflow-nginx automate-workflow-web components/automate-workflow-web diff --git a/api/config/deployment/automate_config.pb.a2svc.go b/api/config/deployment/automate_config.pb.a2svc.go index 823f1a424ae..a29895e6b24 100644 --- a/api/config/deployment/automate_config.pb.a2svc.go +++ b/api/config/deployment/automate_config.pb.a2svc.go @@ -36,6 +36,7 @@ import ( minio "github.com/chef/automate/api/config/minio" nodemanager "github.com/chef/automate/api/config/nodemanager" notifications "github.com/chef/automate/api/config/notifications" + ocid "github.com/chef/automate/api/config/ocid" opensearch "github.com/chef/automate/api/config/opensearch" pggateway "github.com/chef/automate/api/config/pg_gateway" pgsidecar "github.com/chef/automate/api/config/pg_sidecar" @@ -90,6 +91,7 @@ func NewAutomateConfig() *AutomateConfig { Minio: minio.NewConfigRequest(), Nodemanager: nodemanager.NewConfigRequest(), Notifications: notifications.NewConfigRequest(), + Ocid: ocid.NewConfigRequest(), Opensearch: opensearch.NewConfigRequest(), PgGateway: pggateway.NewConfigRequest(), PgSidecar: pgsidecar.NewConfigRequest(), @@ -144,6 +146,7 @@ func DefaultAutomateConfig() *AutomateConfig { Minio: minio.DefaultConfigRequest(), Nodemanager: nodemanager.DefaultConfigRequest(), Notifications: notifications.DefaultConfigRequest(), + Ocid: ocid.DefaultConfigRequest(), Opensearch: opensearch.DefaultConfigRequest(), PgGateway: pggateway.DefaultConfigRequest(), PgSidecar: pgsidecar.DefaultConfigRequest(), @@ -168,7 +171,7 @@ and enforces other invariants on configuration option values. If the configuration is valid, the returned error is nil. */ func (c *AutomateConfig) Validate() error { - err := shared.Validate(c.Global.Validate(), c.AuthN.Validate(), c.AuthZ.Validate(), c.Compliance.Validate(), c.ConfigMgmt.Validate(), c.Deployment.Validate(), c.Dex.Validate(), c.Elasticsearch.Validate(), c.Esgateway.Validate(), c.EsSidecar.Validate(), c.Gateway.Validate(), c.Ingest.Validate(), c.LoadBalancer.Validate(), c.LocalUser.Validate(), c.LicenseControl.Validate(), c.Notifications.Validate(), c.Postgresql.Validate(), c.Session.Validate(), c.Teams.Validate(), c.UI.Validate(), c.Secrets.Validate(), c.BackupGateway.Validate(), c.PgSidecar.Validate(), c.PgGateway.Validate(), c.Applications.Validate(), c.Bookshelf.Validate(), c.Bifrost.Validate(), c.Erchef.Validate(), c.CsNginx.Validate(), c.Workflow.Validate(), c.WorkflowNginx.Validate(), c.EventService.Validate(), c.Nodemanager.Validate(), c.EventGateway.Validate(), c.Prometheus.Validate(), c.DataFeedService.Validate(), c.EventFeedService.Validate(), c.Cereal.Validate(), c.BuilderApi.Validate(), c.BuilderApiProxy.Validate(), c.Minio.Validate(), c.BuilderMemcached.Validate(), c.InfraProxy.Validate(), c.Cds.Validate(), c.SampleData.Validate(), c.UserSettings.Validate(), c.Opensearch.Validate(), c.ReportManager.Validate()) + err := shared.Validate(c.Global.Validate(), c.AuthN.Validate(), c.AuthZ.Validate(), c.Compliance.Validate(), c.ConfigMgmt.Validate(), c.Deployment.Validate(), c.Dex.Validate(), c.Elasticsearch.Validate(), c.Esgateway.Validate(), c.EsSidecar.Validate(), c.Gateway.Validate(), c.Ingest.Validate(), c.LoadBalancer.Validate(), c.LocalUser.Validate(), c.LicenseControl.Validate(), c.Notifications.Validate(), c.Postgresql.Validate(), c.Session.Validate(), c.Teams.Validate(), c.UI.Validate(), c.Secrets.Validate(), c.BackupGateway.Validate(), c.PgSidecar.Validate(), c.PgGateway.Validate(), c.Applications.Validate(), c.Bookshelf.Validate(), c.Bifrost.Validate(), c.Erchef.Validate(), c.CsNginx.Validate(), c.Workflow.Validate(), c.WorkflowNginx.Validate(), c.EventService.Validate(), c.Nodemanager.Validate(), c.EventGateway.Validate(), c.Prometheus.Validate(), c.DataFeedService.Validate(), c.EventFeedService.Validate(), c.Cereal.Validate(), c.BuilderApi.Validate(), c.BuilderApiProxy.Validate(), c.Minio.Validate(), c.BuilderMemcached.Validate(), c.InfraProxy.Validate(), c.Cds.Validate(), c.SampleData.Validate(), c.UserSettings.Validate(), c.Opensearch.Validate(), c.ReportManager.Validate(), c.Ocid.Validate()) if err == nil { return nil } @@ -230,6 +233,7 @@ func (c *AutomateConfig) SetGlobalConfig() { c.UserSettings.SetGlobalConfig(c.Global) c.Opensearch.SetGlobalConfig(c.Global) c.ReportManager.SetGlobalConfig(c.Global) + c.Ocid.SetGlobalConfig(c.Global) } // PlatformServiceConfigForService gets the config for the service by name @@ -331,6 +335,8 @@ func (c *AutomateConfig) PlatformServiceConfigForService(serviceName string) (sh return c.Opensearch, true case "report-manager-service": return c.ReportManager, true + case "automate-cs-ocid": + return c.Ocid, true default: return nil, false } diff --git a/api/config/deployment/automate_config.pb.go b/api/config/deployment/automate_config.pb.go index ed0f3a95367..5b2a72e401e 100644 --- a/api/config/deployment/automate_config.pb.go +++ b/api/config/deployment/automate_config.pb.go @@ -41,6 +41,7 @@ import ( minio "github.com/chef/automate/api/config/minio" nodemanager "github.com/chef/automate/api/config/nodemanager" notifications "github.com/chef/automate/api/config/notifications" + ocid "github.com/chef/automate/api/config/ocid" opensearch "github.com/chef/automate/api/config/opensearch" pg_gateway "github.com/chef/automate/api/config/pg_gateway" pg_sidecar "github.com/chef/automate/api/config/pg_sidecar" @@ -122,6 +123,7 @@ type AutomateConfig struct { UserSettings *user_settings.ConfigRequest `protobuf:"bytes,48,opt,name=user_settings,json=userSettings,proto3" json:"user_settings,omitempty" toml:"user_settings,omitempty" mapstructure:"user_settings,omitempty"` Opensearch *opensearch.ConfigRequest `protobuf:"bytes,49,opt,name=opensearch,proto3" json:"opensearch,omitempty" toml:"opensearch,omitempty" mapstructure:"opensearch,omitempty"` ReportManager *report_manager.ConfigRequest `protobuf:"bytes,50,opt,name=report_manager,json=reportManager,proto3" json:"report_manager,omitempty" toml:"report_manager,omitempty" mapstructure:"report_manager,omitempty"` + Ocid *ocid.ConfigRequest `protobuf:"bytes,51,opt,name=ocid,proto3" json:"ocid,omitempty" toml:"ocid,omitempty" mapstructure:"ocid,omitempty"` } func (x *AutomateConfig) Reset() { @@ -492,6 +494,13 @@ func (x *AutomateConfig) GetReportManager() *report_manager.ConfigRequest { return nil } +func (x *AutomateConfig) GetOcid() *ocid.ConfigRequest { + if x != nil { + return x.Ocid + } + return nil +} + var File_config_deployment_automate_config_proto protoreflect.FileDescriptor var file_config_deployment_automate_config_proto_rawDesc = []byte{ @@ -532,328 +541,334 @@ var file_config_deployment_automate_config_proto_rawDesc = []byte{ 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x64, 0x65, 0x78, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2f, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x27, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2f, 0x63, 0x64, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x2f, 0x63, + 0x6f, 0x1a, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6f, 0x63, 0x69, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x71, 0x6c, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x70, 0x67, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x70, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, - 0x61, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x73, 0x5f, 0x73, 0x69, + 0x64, 0x65, 0x63, 0x61, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x23, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2f, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x75, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x67, - 0x69, 0x6e, 0x78, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x22, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x64, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x71, 0x6c, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x70, 0x67, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x70, 0x67, 0x5f, 0x73, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x23, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x75, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, + 0x6e, 0x67, 0x69, 0x6e, 0x78, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x25, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x66, 0x65, 0x65, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x22, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x65, 0x72, 0x65, 0x61, 0x6c, + 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x25, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x65, - 0x65, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x1a, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, + 0x5f, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x22, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x65, 0x72, 0x65, 0x61, 0x6c, 0x2f, 0x63, + 0x27, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2f, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x6d, - 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x29, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x6c, 0x61, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd0, 0x1d, 0x0a, 0x0e, 0x41, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x06, 0x67, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x12, 0x40, 0x0a, - 0x06, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x61, 0x75, 0x74, 0x68, 0x4e, 0x12, - 0x40, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x7a, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x6c, 0x61, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8e, 0x1e, 0x0a, 0x0e, 0x41, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, + 0x06, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x12, + 0x40, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x43, 0x6f, 0x6e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x61, 0x75, 0x74, 0x68, - 0x5a, 0x12, 0x55, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x0a, 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, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, + 0x4e, 0x12, 0x40, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x7a, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x61, 0x75, + 0x74, 0x68, 0x5a, 0x12, 0x55, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x0a, 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, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x67, 0x6d, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x66, 0x67, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x5f, 0x6d, 0x67, 0x6d, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x66, 0x67, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4d, 0x67, 0x6d, 0x74, 0x12, 0x4e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x68, 0x65, - 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x2e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x03, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x03, 0x64, 0x65, - 0x78, 0x12, 0x56, 0x0a, 0x0d, 0x65, 0x6c, 0x61, 0x73, 0x74, 0x69, 0x63, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, - 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x65, - 0x6c, 0x61, 0x73, 0x74, 0x69, 0x63, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x65, 0x6c, 0x61, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x4a, 0x0a, 0x09, 0x65, 0x73, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, - 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x65, 0x73, 0x67, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x4c, 0x0a, 0x0a, 0x65, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, - 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, - 0x65, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x65, 0x73, 0x53, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x12, 0x41, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x42, 0x0a, 0x06, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x69, 0x6e, - 0x67, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x0d, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x0c, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x72, 0x12, 0x4d, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x5c, 0x0a, 0x0f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, - 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x2e, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x57, - 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4d, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x71, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x2e, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x12, 0x45, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, - 0x05, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, + 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x67, 0x6d, 0x74, 0x12, 0x4e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x2e, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x30, - 0x0a, 0x03, 0x75, 0x5f, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x75, 0x69, 0x2e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x02, 0x75, 0x49, - 0x12, 0x45, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, - 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, - 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, - 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x70, 0x67, 0x5f, 0x73, - 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x70, 0x67, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, - 0x4c, 0x0a, 0x0a, 0x70, 0x67, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x22, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x70, 0x67, 0x5f, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x09, 0x70, 0x67, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x54, 0x0a, - 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x24, 0x20, + 0x61, 0x69, 0x6e, 0x2e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x03, 0x64, 0x65, 0x78, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x64, 0x65, 0x78, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x03, + 0x64, 0x65, 0x78, 0x12, 0x56, 0x0a, 0x0d, 0x65, 0x6c, 0x61, 0x73, 0x74, 0x69, 0x63, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x68, 0x65, + 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x2e, 0x65, 0x6c, 0x61, 0x73, 0x74, 0x69, 0x63, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x65, 0x6c, + 0x61, 0x73, 0x74, 0x69, 0x63, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x4a, 0x0a, 0x09, 0x65, + 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x65, 0x73, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x4c, 0x0a, 0x0a, 0x65, 0x73, 0x5f, 0x73, 0x69, + 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x2e, 0x65, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x2e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x65, 0x73, 0x53, 0x69, + 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x41, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x42, 0x0a, 0x06, 0x69, 0x6e, 0x67, 0x65, + 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, + 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x0d, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x68, 0x65, 0x6c, 0x66, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x62, 0x6f, - 0x6f, 0x6b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x68, 0x65, 0x6c, 0x66, - 0x12, 0x45, 0x0a, 0x07, 0x62, 0x69, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x66, 0x72, 0x6f, 0x73, 0x74, - 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, - 0x62, 0x69, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x65, 0x72, 0x63, 0x68, 0x65, - 0x66, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x65, - 0x72, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x06, 0x65, 0x72, 0x63, 0x68, 0x65, 0x66, 0x12, 0x47, 0x0a, 0x08, 0x63, - 0x73, 0x5f, 0x6e, 0x67, 0x69, 0x6e, 0x78, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x73, 0x5f, 0x6e, 0x67, 0x69, 0x6e, 0x78, 0x2e, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x63, 0x73, 0x4e, - 0x67, 0x69, 0x6e, 0x78, 0x12, 0x4f, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x59, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x5f, 0x6e, 0x67, 0x69, 0x6e, 0x78, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x0f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x2e, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x0e, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x12, 0x57, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4d, 0x0a, 0x0a, 0x70, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x2e, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x2e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x12, 0x45, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x3f, 0x0a, 0x05, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x74, 0x65, 0x61, 0x6d, 0x73, + 0x12, 0x30, 0x0a, 0x03, 0x75, 0x5f, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x75, 0x69, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x02, + 0x75, 0x49, 0x12, 0x45, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x1d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, + 0x72, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x70, 0x67, + 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x70, 0x67, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, + 0x72, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x67, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, + 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x70, 0x67, 0x5f, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x70, 0x67, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, + 0x54, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x68, 0x65, + 0x6c, 0x66, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, + 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x68, 0x65, + 0x6c, 0x66, 0x12, 0x45, 0x0a, 0x07, 0x62, 0x69, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x62, 0x69, 0x66, 0x72, 0x6f, + 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x07, 0x62, 0x69, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x65, 0x72, 0x63, + 0x68, 0x65, 0x66, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x2e, 0x65, 0x72, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x06, 0x65, 0x72, 0x63, 0x68, 0x65, 0x66, 0x12, 0x47, 0x0a, + 0x08, 0x63, 0x73, 0x5f, 0x6e, 0x67, 0x69, 0x6e, 0x78, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x73, 0x5f, 0x6e, 0x67, 0x69, 0x6e, 0x78, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x63, + 0x73, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x12, 0x4f, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x59, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x67, 0x69, 0x6e, 0x78, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, + 0x6e, 0x67, 0x69, 0x6e, 0x78, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x67, 0x69, + 0x6e, 0x78, 0x12, 0x4e, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x68, 0x65, 0x66, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x51, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6e, + 0x6f, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x4d, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, + 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x12, 0x59, 0x0a, 0x11, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x46, 0x65, 0x65, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x12, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x27, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x66, 0x65, 0x65, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x65, 0x72, 0x65, 0x61, 0x6c, 0x18, + 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x63, 0x65, 0x72, 0x65, + 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x06, 0x63, 0x65, 0x72, 0x65, 0x61, 0x6c, 0x12, 0x50, 0x0a, 0x0b, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x67, - 0x69, 0x6e, 0x78, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x67, 0x69, 0x6e, 0x78, - 0x12, 0x4e, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x51, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x18, - 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6e, 0x6f, 0x64, - 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x68, 0x65, - 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x4d, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, + 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x12, 0x59, 0x0a, 0x11, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, - 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x46, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x12, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x66, - 0x65, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x66, - 0x65, 0x65, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x65, 0x72, 0x65, 0x61, 0x6c, 0x18, 0x28, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x63, 0x65, 0x72, 0x65, 0x61, 0x6c, - 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x06, - 0x63, 0x65, 0x72, 0x65, 0x61, 0x6c, 0x12, 0x50, 0x0a, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x68, - 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x65, 0x72, 0x41, 0x70, 0x69, 0x12, 0x61, 0x0a, 0x11, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x2a, 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, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x65, 0x72, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x3e, 0x0a, 0x05, 0x6d, - 0x69, 0x6e, 0x69, 0x6f, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x68, 0x65, - 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, - 0x2e, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x12, 0x61, 0x0a, 0x11, 0x62, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x41, 0x70, 0x69, 0x12, 0x61, 0x0a, 0x11, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, + 0x2a, 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, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x65, 0x72, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x3e, 0x0a, + 0x05, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, + 0x72, 0x61, 0x2e, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x12, 0x61, 0x0a, + 0x11, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, - 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x2e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x10, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x12, 0x50, - 0x0a, 0x0b, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x2d, 0x20, - 0x01, 0x28, 0x0b, 0x32, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, - 0x12, 0x39, 0x0a, 0x03, 0x63, 0x64, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x64, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x03, 0x63, 0x64, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x73, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x56, 0x0a, - 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x30, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x65, 0x66, - 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x12, 0x59, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, - 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4a, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x10, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x12, 0x50, 0x0a, 0x0b, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, + 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x50, 0x72, 0x6f, + 0x78, 0x79, 0x12, 0x39, 0x0a, 0x03, 0x63, 0x64, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x64, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x03, 0x63, 0x64, 0x73, 0x12, 0x50, 0x0a, + 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x2f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x56, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x59, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x12, 0x3c, 0x0a, 0x04, 0x6f, 0x63, 0x69, 0x64, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6f, 0x63, 0x69, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6f, 0x63, 0x69, 0x64, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x14, 0x10, 0x15, 0x42, 0x30, 0x5a, 0x2e, 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, 0x63, 0x6f, 0x6e, 0x66, @@ -924,6 +939,7 @@ var file_config_deployment_automate_config_proto_goTypes = []interface{}{ (*user_settings.ConfigRequest)(nil), // 46: chef.automate.domain.user_settings.ConfigRequest (*opensearch.ConfigRequest)(nil), // 47: chef.automate.infra.opensearch.ConfigRequest (*report_manager.ConfigRequest)(nil), // 48: chef.automate.domain.report_manager.ConfigRequest + (*ocid.ConfigRequest)(nil), // 49: chef.automate.domain.ocid.ConfigRequest } var file_config_deployment_automate_config_proto_depIdxs = []int32{ 1, // 0: chef.automate.domain.deployment.AutomateConfig.global:type_name -> chef.automate.infra.config.GlobalConfig @@ -974,11 +990,12 @@ var file_config_deployment_automate_config_proto_depIdxs = []int32{ 46, // 45: chef.automate.domain.deployment.AutomateConfig.user_settings:type_name -> chef.automate.domain.user_settings.ConfigRequest 47, // 46: chef.automate.domain.deployment.AutomateConfig.opensearch:type_name -> chef.automate.infra.opensearch.ConfigRequest 48, // 47: chef.automate.domain.deployment.AutomateConfig.report_manager:type_name -> chef.automate.domain.report_manager.ConfigRequest - 48, // [48:48] is the sub-list for method output_type - 48, // [48:48] is the sub-list for method input_type - 48, // [48:48] is the sub-list for extension type_name - 48, // [48:48] is the sub-list for extension extendee - 0, // [0:48] is the sub-list for field type_name + 49, // 48: chef.automate.domain.deployment.AutomateConfig.ocid:type_name -> chef.automate.domain.ocid.ConfigRequest + 49, // [49:49] is the sub-list for method output_type + 49, // [49:49] is the sub-list for method input_type + 49, // [49:49] is the sub-list for extension type_name + 49, // [49:49] is the sub-list for extension extendee + 0, // [0:49] is the sub-list for field type_name } func init() { file_config_deployment_automate_config_proto_init() } diff --git a/api/config/deployment/automate_config.proto b/api/config/deployment/automate_config.proto index de5531640df..60fee3dd513 100644 --- a/api/config/deployment/automate_config.proto +++ b/api/config/deployment/automate_config.proto @@ -18,6 +18,7 @@ import "config/shared/global.proto"; import "config/cs_nginx/config_request.proto"; import "config/deployment/config_request.proto"; import "config/dex/config_request.proto"; +import "config/ocid/config_request.proto"; import "config/opensearch/config_request.proto"; import "config/esgateway/config_request.proto"; import "config/es_sidecar/config_request.proto"; @@ -108,4 +109,5 @@ message AutomateConfig { chef.automate.domain.user_settings.ConfigRequest user_settings = 48; chef.automate.infra.opensearch.ConfigRequest opensearch = 49; chef.automate.domain.report_manager.ConfigRequest report_manager = 50; + chef.automate.domain.ocid.ConfigRequest ocid = 51; } diff --git a/api/config/ocid/config_request.go b/api/config/ocid/config_request.go new file mode 100644 index 00000000000..f84c1232bd3 --- /dev/null +++ b/api/config/ocid/config_request.go @@ -0,0 +1,107 @@ +package ocid + +import ( + "fmt" + ac "github.com/chef/automate/api/config/shared" + w "github.com/chef/automate/api/config/shared/wrappers" + "regexp" +) + +const regexValidURI = `^(http(s)?:\/\/)[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$` + +// NewConfigRequest returns a new instance of ConfigRequest with zero values. +func NewConfigRequest() *ConfigRequest { + return &ConfigRequest{ + V1: &ConfigRequest_V1{ + Sys: &ConfigRequest_V1_System{ + Log: &ConfigRequest_V1_System_Log{}, + Network: &ConfigRequest_V1_System_Network{}, + Sql: &ConfigRequest_V1_System_Sql{}, + Ocid: &ConfigRequest_V1_System_Ocid{}, + }, + Svc: &ConfigRequest_V1_Service{}, + }, + } +} + +// DefaultConfigRequest returns a new instance of ConfigRequest with default values. +func DefaultConfigRequest() *ConfigRequest { + c := NewConfigRequest() + + c.V1.Sys.Network.Port = w.Int32(10114) + c.V1.Sys.Network.ListenIp = w.String("127.0.0.1") + + c.V1.Sys.Log.Level = w.String("info") + c.V1.Sys.Log.RotationMaxBytes = w.Int64(104857600) + c.V1.Sys.Log.RotationMaxFiles = w.Int32(10) + c.V1.Sys.Log.MaxErrorLogsPerSecond = w.Int32(1000) + + c.V1.Sys.Sql.Timeout = w.Int32(30000) + c.V1.Sys.Sql.PoolInitSize = w.Int32(25) + c.V1.Sys.Sql.PoolMaxSize = w.Int32(100) + c.V1.Sys.Sql.PoolQueueMax = w.Int32(50) + c.V1.Sys.Sql.PoolQueueTimeout = w.Int32(2000) + + return c +} + +// Validate validates that the config is sufficient to start the Service. If +// validation succeeds it will return nil, if it fails it will return a new +// instance of config.InvalidConfigError that has the missing keys and invalid +// fields populated. +func (c *ConfigRequest) Validate() error { + cfgErr := ac.NewInvalidConfigError() + oauthApplications := c.GetV1().GetSys().GetOcid().GetOauthApplicationConfig().GetOauthApplications() + oauthApplicationsCount := len(oauthApplications) + + if oauthApplicationsCount < 1 { + return nil + } + + for i := 0; i < oauthApplicationsCount; i++ { + appName := oauthApplications[i].GetName().GetValue() + redirectURI := oauthApplications[i].GetRedirectUri().GetValue() + + // We need this condition to skip empty objects + if appName == "" && redirectURI == "" { + continue + } + + // Validating App Name + if appName == "" { + cfgErr.AddMissingKey("Oauth Application Name") + } + + // Validating App Redirect URI + if redirectURI == "" { + cfgErr.AddMissingKey("Oauth Application Redirect URI") + } else { + // Validating Redirect URI format + validUrl, _ := regexp.MatchString(regexValidURI, redirectURI) + if !validUrl { + keyName := fmt.Sprintf("Redirect URI for App: %v", appName) + cfgErr.AddInvalidValue(keyName, redirectURI) + } + } + } + + if cfgErr.IsEmpty() { + return nil + } + return cfgErr +} + +func (c *ConfigRequest) SetGlobalConfig(g *ac.GlobalConfig) { + c.V1.Sys.Mlsa = g.V1.Mlsa + + if logLevel := g.GetV1().GetLog().GetLevel().GetValue(); logLevel != "" { + c.V1.Sys.Log.Level.Value = ac.GlobalLogLevelToZapLevel(logLevel) + } +} + +// PrepareSystemConfig returns a system configuration that can be used +// to start the service. +func (c *ConfigRequest) PrepareSystemConfig(creds *ac.TLSCredentials) (ac.PreparedSystemConfig, error) { + c.V1.Sys.Tls = creds + return c.V1.Sys, nil +} diff --git a/api/config/ocid/config_request.pb.a2svc.go b/api/config/ocid/config_request.pb.a2svc.go new file mode 100644 index 00000000000..1981c62de45 --- /dev/null +++ b/api/config/ocid/config_request.pb.a2svc.go @@ -0,0 +1,85 @@ +// Code generated by protoc-gen-a2config. DO NOT EDIT. +// source: config/ocid/config_request.proto + +package ocid + +import ( + a2conf "github.com/chef/automate/components/automate-grpc/protoc-gen-a2-config/api/a2conf" + wrappers "github.com/golang/protobuf/ptypes/wrappers" +) + +// ServiceName returns the name of the service this config belongs to +func (m *ConfigRequest) ServiceName() string { + return "automate-cs-ocid" +} + +// BindPort sets the port tagged with the given name +func (m *ConfigRequest) BindPort(name string, value uint16) error { + switch name { + case "service": + v0 := &m.V1 + if *v0 == nil { + *v0 = &ConfigRequest_V1{} + } + v1 := &(*v0).Sys + if *v1 == nil { + *v1 = &ConfigRequest_V1_System{} + } + v2 := &(*v1).Network + if *v2 == nil { + *v2 = &ConfigRequest_V1_System_Network{} + } + v3 := &(*v2).Port + *v3 = &wrappers.Int32Value{Value: int32(value)} + default: + return a2conf.ErrPortNotFound + } + return nil +} + +// ListPorts lists all the ports exposed by the config +func (m *ConfigRequest) ListPorts() []a2conf.PortInfo { + return []a2conf.PortInfo{a2conf.PortInfo{ + Default: uint16(int32(10114)), + Name: "service", + Protocol: "https", + }} +} + +// GetPort gets the port tagged with the given name. If the value is not set, it returns 0. +func (m *ConfigRequest) GetPort(name string) (uint16, error) { + switch name { + case "service": + v0 := m.V1 + if v0 == nil { + return 0, nil + } + v1 := v0.Sys + if v1 == nil { + return 0, nil + } + v2 := v1.Network + if v2 == nil { + return 0, nil + } + v3 := v2.Port + return uint16(v3.GetValue()), nil + default: + return 0, a2conf.ErrPortNotFound + } +} + +// ListSecrets lists all the secrets exposed by the config +func (m *ConfigRequest) ListSecrets() []a2conf.SecretInfo { + return []a2conf.SecretInfo{} +} + +// GetSecret gets a secret by name. Returns nil if it is not set +func (m *ConfigRequest) GetSecret(name string) *wrappers.StringValue { + return nil +} + +// SetSecret sets a secret by name. Returns ErrSecretNotFound if the secret does not exist +func (m *ConfigRequest) SetSecret(name string, value *wrappers.StringValue) error { + return a2conf.ErrSecretNotFound +} diff --git a/api/config/ocid/config_request.pb.go b/api/config/ocid/config_request.pb.go new file mode 100644 index 00000000000..47530f1c752 --- /dev/null +++ b/api/config/ocid/config_request.pb.go @@ -0,0 +1,1083 @@ +// -*- mode: protobuf; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.19.0 +// source: config/ocid/config_request.proto + +package ocid + +import ( + shared "github.com/chef/automate/api/config/shared" + _ "github.com/chef/automate/components/automate-grpc/protoc-gen-a2-config/api/a2conf" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + 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) +) + +type ConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + V1 *ConfigRequest_V1 `protobuf:"bytes,1,opt,name=v1,proto3" json:"v1,omitempty" toml:"v1,omitempty" mapstructure:"v1,omitempty"` +} + +func (x *ConfigRequest) Reset() { + *x = ConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_config_ocid_config_request_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest) ProtoMessage() {} + +func (x *ConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_config_ocid_config_request_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 ConfigRequest.ProtoReflect.Descriptor instead. +func (*ConfigRequest) Descriptor() ([]byte, []int) { + return file_config_ocid_config_request_proto_rawDescGZIP(), []int{0} +} + +func (x *ConfigRequest) GetV1() *ConfigRequest_V1 { + if x != nil { + return x.V1 + } + return nil +} + +type ConfigRequest_V1 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sys *ConfigRequest_V1_System `protobuf:"bytes,1,opt,name=sys,proto3" json:"sys,omitempty" toml:"sys,omitempty" mapstructure:"sys,omitempty"` + Svc *ConfigRequest_V1_Service `protobuf:"bytes,2,opt,name=svc,proto3" json:"svc,omitempty" toml:"svc,omitempty" mapstructure:"svc,omitempty"` +} + +func (x *ConfigRequest_V1) Reset() { + *x = ConfigRequest_V1{} + if protoimpl.UnsafeEnabled { + mi := &file_config_ocid_config_request_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1) ProtoMessage() {} + +func (x *ConfigRequest_V1) ProtoReflect() protoreflect.Message { + mi := &file_config_ocid_config_request_proto_msgTypes[1] + 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 ConfigRequest_V1.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1) Descriptor() ([]byte, []int) { + return file_config_ocid_config_request_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *ConfigRequest_V1) GetSys() *ConfigRequest_V1_System { + if x != nil { + return x.Sys + } + return nil +} + +func (x *ConfigRequest_V1) GetSvc() *ConfigRequest_V1_Service { + if x != nil { + return x.Svc + } + return nil +} + +type ConfigRequest_V1_System struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mlsa *shared.Mlsa `protobuf:"bytes,1,opt,name=mlsa,proto3" json:"mlsa,omitempty" toml:"mlsa,omitempty" mapstructure:"mlsa,omitempty"` + Log *ConfigRequest_V1_System_Log `protobuf:"bytes,2,opt,name=log,proto3" json:"log,omitempty" toml:"log,omitempty" mapstructure:"log,omitempty"` + Network *ConfigRequest_V1_System_Network `protobuf:"bytes,3,opt,name=network,proto3" json:"network,omitempty" toml:"network,omitempty" mapstructure:"network,omitempty"` + Sql *ConfigRequest_V1_System_Sql `protobuf:"bytes,4,opt,name=sql,proto3" json:"sql,omitempty" toml:"sql,omitempty" mapstructure:"sql,omitempty"` + Ocid *ConfigRequest_V1_System_Ocid `protobuf:"bytes,5,opt,name=ocid,proto3" json:"ocid,omitempty" toml:"ocid,omitempty" mapstructure:"ocid,omitempty"` + Tls *shared.TLSCredentials `protobuf:"bytes,6,opt,name=tls,proto3" json:"tls,omitempty" toml:"tls,omitempty" mapstructure:"tls,omitempty"` +} + +func (x *ConfigRequest_V1_System) Reset() { + *x = ConfigRequest_V1_System{} + if protoimpl.UnsafeEnabled { + mi := &file_config_ocid_config_request_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1_System) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1_System) ProtoMessage() {} + +func (x *ConfigRequest_V1_System) ProtoReflect() protoreflect.Message { + mi := &file_config_ocid_config_request_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 ConfigRequest_V1_System.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1_System) Descriptor() ([]byte, []int) { + return file_config_ocid_config_request_proto_rawDescGZIP(), []int{0, 0, 0} +} + +func (x *ConfigRequest_V1_System) GetMlsa() *shared.Mlsa { + if x != nil { + return x.Mlsa + } + return nil +} + +func (x *ConfigRequest_V1_System) GetLog() *ConfigRequest_V1_System_Log { + if x != nil { + return x.Log + } + return nil +} + +func (x *ConfigRequest_V1_System) GetNetwork() *ConfigRequest_V1_System_Network { + if x != nil { + return x.Network + } + return nil +} + +func (x *ConfigRequest_V1_System) GetSql() *ConfigRequest_V1_System_Sql { + if x != nil { + return x.Sql + } + return nil +} + +func (x *ConfigRequest_V1_System) GetOcid() *ConfigRequest_V1_System_Ocid { + if x != nil { + return x.Ocid + } + return nil +} + +func (x *ConfigRequest_V1_System) GetTls() *shared.TLSCredentials { + if x != nil { + return x.Tls + } + return nil +} + +type ConfigRequest_V1_Service struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ConfigRequest_V1_Service) Reset() { + *x = ConfigRequest_V1_Service{} + if protoimpl.UnsafeEnabled { + mi := &file_config_ocid_config_request_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1_Service) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1_Service) ProtoMessage() {} + +func (x *ConfigRequest_V1_Service) ProtoReflect() protoreflect.Message { + mi := &file_config_ocid_config_request_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 ConfigRequest_V1_Service.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1_Service) Descriptor() ([]byte, []int) { + return file_config_ocid_config_request_proto_rawDescGZIP(), []int{0, 0, 1} +} + +type ConfigRequest_V1_System_Network struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Port *wrapperspb.Int32Value `protobuf:"bytes,1,opt,name=port,proto3" json:"port,omitempty" toml:"port,omitempty" mapstructure:"port,omitempty"` + // Deprecated: Do not use. + ListenIp *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=listen_ip,json=listenIp,proto3" json:"listen_ip,omitempty" toml:"listen_ip,omitempty" mapstructure:"listen_ip,omitempty"` // The listen host is no longer setable(localhost only) +} + +func (x *ConfigRequest_V1_System_Network) Reset() { + *x = ConfigRequest_V1_System_Network{} + if protoimpl.UnsafeEnabled { + mi := &file_config_ocid_config_request_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1_System_Network) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1_System_Network) ProtoMessage() {} + +func (x *ConfigRequest_V1_System_Network) ProtoReflect() protoreflect.Message { + mi := &file_config_ocid_config_request_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 ConfigRequest_V1_System_Network.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1_System_Network) Descriptor() ([]byte, []int) { + return file_config_ocid_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 0} +} + +func (x *ConfigRequest_V1_System_Network) GetPort() *wrapperspb.Int32Value { + if x != nil { + return x.Port + } + return nil +} + +// Deprecated: Do not use. +func (x *ConfigRequest_V1_System_Network) GetListenIp() *wrapperspb.StringValue { + if x != nil { + return x.ListenIp + } + return nil +} + +type ConfigRequest_V1_System_Log struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Level *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=level,proto3" json:"level,omitempty" toml:"level,omitempty" mapstructure:"level,omitempty"` + RotationMaxBytes *wrapperspb.Int64Value `protobuf:"bytes,2,opt,name=rotation_max_bytes,json=rotationMaxBytes,proto3" json:"rotation_max_bytes,omitempty" toml:"rotation_max_bytes,omitempty" mapstructure:"rotation_max_bytes,omitempty"` + RotationMaxFiles *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=rotation_max_files,json=rotationMaxFiles,proto3" json:"rotation_max_files,omitempty" toml:"rotation_max_files,omitempty" mapstructure:"rotation_max_files,omitempty"` + MaxErrorLogsPerSecond *wrapperspb.Int32Value `protobuf:"bytes,4,opt,name=max_error_logs_per_second,json=maxErrorLogsPerSecond,proto3" json:"max_error_logs_per_second,omitempty" toml:"max_error_logs_per_second,omitempty" mapstructure:"max_error_logs_per_second,omitempty"` +} + +func (x *ConfigRequest_V1_System_Log) Reset() { + *x = ConfigRequest_V1_System_Log{} + if protoimpl.UnsafeEnabled { + mi := &file_config_ocid_config_request_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1_System_Log) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1_System_Log) ProtoMessage() {} + +func (x *ConfigRequest_V1_System_Log) ProtoReflect() protoreflect.Message { + mi := &file_config_ocid_config_request_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 ConfigRequest_V1_System_Log.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1_System_Log) Descriptor() ([]byte, []int) { + return file_config_ocid_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 1} +} + +func (x *ConfigRequest_V1_System_Log) GetLevel() *wrapperspb.StringValue { + if x != nil { + return x.Level + } + return nil +} + +func (x *ConfigRequest_V1_System_Log) GetRotationMaxBytes() *wrapperspb.Int64Value { + if x != nil { + return x.RotationMaxBytes + } + return nil +} + +func (x *ConfigRequest_V1_System_Log) GetRotationMaxFiles() *wrapperspb.Int32Value { + if x != nil { + return x.RotationMaxFiles + } + return nil +} + +func (x *ConfigRequest_V1_System_Log) GetMaxErrorLogsPerSecond() *wrapperspb.Int32Value { + if x != nil { + return x.MaxErrorLogsPerSecond + } + return nil +} + +type ConfigRequest_V1_System_Sql struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Timeout *wrapperspb.Int32Value `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty" toml:"timeout,omitempty" mapstructure:"timeout,omitempty"` + PoolInitSize *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=pool_init_size,json=poolInitSize,proto3" json:"pool_init_size,omitempty" toml:"pool_init_size,omitempty" mapstructure:"pool_init_size,omitempty"` + PoolMaxSize *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=pool_max_size,json=poolMaxSize,proto3" json:"pool_max_size,omitempty" toml:"pool_max_size,omitempty" mapstructure:"pool_max_size,omitempty"` + PoolQueueMax *wrapperspb.Int32Value `protobuf:"bytes,4,opt,name=pool_queue_max,json=poolQueueMax,proto3" json:"pool_queue_max,omitempty" toml:"pool_queue_max,omitempty" mapstructure:"pool_queue_max,omitempty"` + PoolQueueTimeout *wrapperspb.Int32Value `protobuf:"bytes,5,opt,name=pool_queue_timeout,json=poolQueueTimeout,proto3" json:"pool_queue_timeout,omitempty" toml:"pool_queue_timeout,omitempty" mapstructure:"pool_queue_timeout,omitempty"` +} + +func (x *ConfigRequest_V1_System_Sql) Reset() { + *x = ConfigRequest_V1_System_Sql{} + if protoimpl.UnsafeEnabled { + mi := &file_config_ocid_config_request_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1_System_Sql) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1_System_Sql) ProtoMessage() {} + +func (x *ConfigRequest_V1_System_Sql) ProtoReflect() protoreflect.Message { + mi := &file_config_ocid_config_request_proto_msgTypes[6] + 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 ConfigRequest_V1_System_Sql.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1_System_Sql) Descriptor() ([]byte, []int) { + return file_config_ocid_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 2} +} + +func (x *ConfigRequest_V1_System_Sql) GetTimeout() *wrapperspb.Int32Value { + if x != nil { + return x.Timeout + } + return nil +} + +func (x *ConfigRequest_V1_System_Sql) GetPoolInitSize() *wrapperspb.Int32Value { + if x != nil { + return x.PoolInitSize + } + return nil +} + +func (x *ConfigRequest_V1_System_Sql) GetPoolMaxSize() *wrapperspb.Int32Value { + if x != nil { + return x.PoolMaxSize + } + return nil +} + +func (x *ConfigRequest_V1_System_Sql) GetPoolQueueMax() *wrapperspb.Int32Value { + if x != nil { + return x.PoolQueueMax + } + return nil +} + +func (x *ConfigRequest_V1_System_Sql) GetPoolQueueTimeout() *wrapperspb.Int32Value { + if x != nil { + return x.PoolQueueTimeout + } + return nil +} + +type ConfigRequest_V1_System_Ocid struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChefServerConfig *ConfigRequest_V1_System_Ocid_ChefServerConfig `protobuf:"bytes,1,opt,name=chef_server_config,json=chefServerConfig,proto3" json:"chef_server_config,omitempty" toml:"chef_server_config,omitempty" mapstructure:"chef_server_config,omitempty"` + OauthApplicationConfig *ConfigRequest_V1_System_Ocid_OauthApplicationConfig `protobuf:"bytes,2,opt,name=oauth_application_config,json=oauthApplicationConfig,proto3" json:"oauth_application_config,omitempty" toml:"oauth_application_config,omitempty" mapstructure:"oauth_application_config,omitempty"` + SecretKeyBase *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=secret_key_base,json=secretKeyBase,proto3" json:"secret_key_base,omitempty" toml:"secret_key_base,omitempty" mapstructure:"secret_key_base,omitempty"` +} + +func (x *ConfigRequest_V1_System_Ocid) Reset() { + *x = ConfigRequest_V1_System_Ocid{} + if protoimpl.UnsafeEnabled { + mi := &file_config_ocid_config_request_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1_System_Ocid) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1_System_Ocid) ProtoMessage() {} + +func (x *ConfigRequest_V1_System_Ocid) ProtoReflect() protoreflect.Message { + mi := &file_config_ocid_config_request_proto_msgTypes[7] + 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 ConfigRequest_V1_System_Ocid.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1_System_Ocid) Descriptor() ([]byte, []int) { + return file_config_ocid_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 3} +} + +func (x *ConfigRequest_V1_System_Ocid) GetChefServerConfig() *ConfigRequest_V1_System_Ocid_ChefServerConfig { + if x != nil { + return x.ChefServerConfig + } + return nil +} + +func (x *ConfigRequest_V1_System_Ocid) GetOauthApplicationConfig() *ConfigRequest_V1_System_Ocid_OauthApplicationConfig { + if x != nil { + return x.OauthApplicationConfig + } + return nil +} + +func (x *ConfigRequest_V1_System_Ocid) GetSecretKeyBase() *wrapperspb.StringValue { + if x != nil { + return x.SecretKeyBase + } + return nil +} + +type ConfigRequest_V1_System_Ocid_ChefServerConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Endpoint *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty" toml:"endpoint,omitempty" mapstructure:"endpoint,omitempty"` + Superuser *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=superuser,proto3" json:"superuser,omitempty" toml:"superuser,omitempty" mapstructure:"superuser,omitempty"` + SslVerifyMode *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=ssl_verify_mode,json=sslVerifyMode,proto3" json:"ssl_verify_mode,omitempty" toml:"ssl_verify_mode,omitempty" mapstructure:"ssl_verify_mode,omitempty"` +} + +func (x *ConfigRequest_V1_System_Ocid_ChefServerConfig) Reset() { + *x = ConfigRequest_V1_System_Ocid_ChefServerConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_config_ocid_config_request_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1_System_Ocid_ChefServerConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1_System_Ocid_ChefServerConfig) ProtoMessage() {} + +func (x *ConfigRequest_V1_System_Ocid_ChefServerConfig) ProtoReflect() protoreflect.Message { + mi := &file_config_ocid_config_request_proto_msgTypes[8] + 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 ConfigRequest_V1_System_Ocid_ChefServerConfig.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1_System_Ocid_ChefServerConfig) Descriptor() ([]byte, []int) { + return file_config_ocid_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 3, 0} +} + +func (x *ConfigRequest_V1_System_Ocid_ChefServerConfig) GetEndpoint() *wrapperspb.StringValue { + if x != nil { + return x.Endpoint + } + return nil +} + +func (x *ConfigRequest_V1_System_Ocid_ChefServerConfig) GetSuperuser() *wrapperspb.StringValue { + if x != nil { + return x.Superuser + } + return nil +} + +func (x *ConfigRequest_V1_System_Ocid_ChefServerConfig) GetSslVerifyMode() *wrapperspb.StringValue { + if x != nil { + return x.SslVerifyMode + } + return nil +} + +type ConfigRequest_V1_System_Ocid_OauthApplicationConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OauthApplications []*ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication `protobuf:"bytes,1,rep,name=oauth_applications,json=oauthApplications,proto3" json:"oauth_applications,omitempty" toml:"oauth_applications,omitempty" mapstructure:"oauth_applications,omitempty"` +} + +func (x *ConfigRequest_V1_System_Ocid_OauthApplicationConfig) Reset() { + *x = ConfigRequest_V1_System_Ocid_OauthApplicationConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_config_ocid_config_request_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1_System_Ocid_OauthApplicationConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1_System_Ocid_OauthApplicationConfig) ProtoMessage() {} + +func (x *ConfigRequest_V1_System_Ocid_OauthApplicationConfig) ProtoReflect() protoreflect.Message { + mi := &file_config_ocid_config_request_proto_msgTypes[9] + 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 ConfigRequest_V1_System_Ocid_OauthApplicationConfig.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1_System_Ocid_OauthApplicationConfig) Descriptor() ([]byte, []int) { + return file_config_ocid_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 3, 1} +} + +func (x *ConfigRequest_V1_System_Ocid_OauthApplicationConfig) GetOauthApplications() []*ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication { + if x != nil { + return x.OauthApplications + } + return nil +} + +type ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"` + RedirectUri *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=redirect_uri,json=redirectUri,proto3" json:"redirect_uri,omitempty" toml:"redirect_uri,omitempty" mapstructure:"redirect_uri,omitempty"` +} + +func (x *ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication) Reset() { + *x = ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication{} + if protoimpl.UnsafeEnabled { + mi := &file_config_ocid_config_request_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication) ProtoMessage() {} + +func (x *ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication) ProtoReflect() protoreflect.Message { + mi := &file_config_ocid_config_request_proto_msgTypes[10] + 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 ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication) Descriptor() ([]byte, []int) { + return file_config_ocid_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 3, 1, 0} +} + +func (x *ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication) GetName() *wrapperspb.StringValue { + if x != nil { + return x.Name + } + return nil +} + +func (x *ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication) GetRedirectUri() *wrapperspb.StringValue { + if x != nil { + return x.RedirectUri + } + return nil +} + +var File_config_ocid_config_request_proto protoreflect.FileDescriptor + +var file_config_ocid_config_request_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6f, 0x63, 0x69, 0x64, 0x2f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x19, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6f, 0x63, 0x69, 0x64, 0x1a, 0x1a, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2f, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2f, 0x74, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x3f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2d, 0x67, 0x72, 0x70, + 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x61, 0x32, 0x2d, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x32, 0x63, 0x6f, 0x6e, + 0x66, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x9f, 0x12, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x02, 0x76, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6f, 0x63, 0x69, 0x64, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x52, 0x02, + 0x76, 0x31, 0x1a, 0xb8, 0x11, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x44, 0x0a, 0x03, 0x73, 0x79, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6f, 0x63, + 0x69, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x03, 0x73, 0x79, 0x73, 0x12, + 0x45, 0x0a, 0x03, 0x73, 0x76, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, + 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x2e, 0x6f, 0x63, 0x69, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x03, 0x73, 0x76, 0x63, 0x1a, 0x99, 0x10, 0x0a, 0x06, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x12, 0x34, 0x0a, 0x04, 0x6d, 0x6c, 0x73, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x6c, 0x73, + 0x61, 0x52, 0x04, 0x6d, 0x6c, 0x73, 0x61, 0x12, 0x48, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6f, 0x63, 0x69, 0x64, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, + 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x03, 0x6c, 0x6f, + 0x67, 0x12, 0x54, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, 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, 0x6f, 0x63, 0x69, 0x64, 0x2e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x48, 0x0a, 0x03, 0x73, 0x71, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6f, 0x63, 0x69, 0x64, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, + 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x53, 0x71, 0x6c, 0x52, 0x03, 0x73, 0x71, + 0x6c, 0x12, 0x4b, 0x0a, 0x04, 0x6f, 0x63, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6f, 0x63, 0x69, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x2e, 0x4f, 0x63, 0x69, 0x64, 0x52, 0x04, 0x6f, 0x63, 0x69, 0x64, 0x12, 0x3c, + 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x68, + 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x1a, 0x92, 0x01, 0x0a, + 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x48, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x17, 0xc2, 0xf3, 0x18, 0x13, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x10, 0x82, 0x4f, 0x1a, 0x05, 0x68, 0x74, 0x74, 0x70, 0x73, 0x52, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x3d, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x69, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x49, + 0x70, 0x1a, 0xa6, 0x02, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x32, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x49, 0x0a, + 0x12, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x12, 0x72, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x10, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x12, 0x55, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x67, + 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x1a, 0xce, 0x02, 0x0a, 0x03, 0x53, + 0x71, 0x6c, 0x12, 0x35, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x41, 0x0a, 0x0e, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, + 0x70, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x3f, 0x0a, 0x0d, + 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0b, 0x70, 0x6f, 0x6f, 0x6c, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x41, 0x0a, + 0x0e, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0c, 0x70, 0x6f, 0x6f, 0x6c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x61, 0x78, + 0x12, 0x49, 0x0a, 0x12, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x70, 0x6f, 0x6f, 0x6c, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0xd4, 0x06, 0x0a, 0x04, + 0x4f, 0x63, 0x69, 0x64, 0x12, 0x76, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x66, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x48, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6f, 0x63, 0x69, 0x64, 0x2e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x4f, 0x63, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x65, 0x66, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x63, 0x68, 0x65, 0x66, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x88, 0x01, 0x0a, + 0x18, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x4e, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6f, 0x63, 0x69, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x2e, 0x4f, 0x63, 0x69, 0x64, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x16, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x42, 0x61, 0x73, 0x65, 0x1a, 0xce, 0x01, + 0x0a, 0x10, 0x43, 0x68, 0x65, 0x66, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x38, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, + 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x73, + 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x73, 0x6c, 0x5f, + 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0d, 0x73, 0x73, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x1a, 0xb1, + 0x02, 0x0a, 0x16, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x6f, 0x61, + 0x75, 0x74, 0x68, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x6f, 0x63, + 0x69, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x4f, 0x63, 0x69, 0x64, 0x2e, + 0x4f, 0x61, 0x75, 0x74, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x85, 0x01, 0x0a, 0x10, 0x4f, + 0x61, 0x75, 0x74, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x30, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, + 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, + 0x72, 0x69, 0x1a, 0x09, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x16, 0xc2, + 0xf3, 0x18, 0x12, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2d, 0x63, 0x73, + 0x2d, 0x6f, 0x63, 0x69, 0x64, 0x42, 0x2a, 0x5a, 0x28, 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, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6f, 0x63, 0x69, + 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_config_ocid_config_request_proto_rawDescOnce sync.Once + file_config_ocid_config_request_proto_rawDescData = file_config_ocid_config_request_proto_rawDesc +) + +func file_config_ocid_config_request_proto_rawDescGZIP() []byte { + file_config_ocid_config_request_proto_rawDescOnce.Do(func() { + file_config_ocid_config_request_proto_rawDescData = protoimpl.X.CompressGZIP(file_config_ocid_config_request_proto_rawDescData) + }) + return file_config_ocid_config_request_proto_rawDescData +} + +var file_config_ocid_config_request_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_config_ocid_config_request_proto_goTypes = []interface{}{ + (*ConfigRequest)(nil), // 0: chef.automate.domain.ocid.ConfigRequest + (*ConfigRequest_V1)(nil), // 1: chef.automate.domain.ocid.ConfigRequest.V1 + (*ConfigRequest_V1_System)(nil), // 2: chef.automate.domain.ocid.ConfigRequest.V1.System + (*ConfigRequest_V1_Service)(nil), // 3: chef.automate.domain.ocid.ConfigRequest.V1.Service + (*ConfigRequest_V1_System_Network)(nil), // 4: chef.automate.domain.ocid.ConfigRequest.V1.System.Network + (*ConfigRequest_V1_System_Log)(nil), // 5: chef.automate.domain.ocid.ConfigRequest.V1.System.Log + (*ConfigRequest_V1_System_Sql)(nil), // 6: chef.automate.domain.ocid.ConfigRequest.V1.System.Sql + (*ConfigRequest_V1_System_Ocid)(nil), // 7: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid + (*ConfigRequest_V1_System_Ocid_ChefServerConfig)(nil), // 8: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.ChefServerConfig + (*ConfigRequest_V1_System_Ocid_OauthApplicationConfig)(nil), // 9: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.OauthApplicationConfig + (*ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication)(nil), // 10: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.OauthApplicationConfig.OauthApplication + (*shared.Mlsa)(nil), // 11: chef.automate.infra.config.Mlsa + (*shared.TLSCredentials)(nil), // 12: chef.automate.infra.config.TLSCredentials + (*wrapperspb.Int32Value)(nil), // 13: google.protobuf.Int32Value + (*wrapperspb.StringValue)(nil), // 14: google.protobuf.StringValue + (*wrapperspb.Int64Value)(nil), // 15: google.protobuf.Int64Value +} +var file_config_ocid_config_request_proto_depIdxs = []int32{ + 1, // 0: chef.automate.domain.ocid.ConfigRequest.v1:type_name -> chef.automate.domain.ocid.ConfigRequest.V1 + 2, // 1: chef.automate.domain.ocid.ConfigRequest.V1.sys:type_name -> chef.automate.domain.ocid.ConfigRequest.V1.System + 3, // 2: chef.automate.domain.ocid.ConfigRequest.V1.svc:type_name -> chef.automate.domain.ocid.ConfigRequest.V1.Service + 11, // 3: chef.automate.domain.ocid.ConfigRequest.V1.System.mlsa:type_name -> chef.automate.infra.config.Mlsa + 5, // 4: chef.automate.domain.ocid.ConfigRequest.V1.System.log:type_name -> chef.automate.domain.ocid.ConfigRequest.V1.System.Log + 4, // 5: chef.automate.domain.ocid.ConfigRequest.V1.System.network:type_name -> chef.automate.domain.ocid.ConfigRequest.V1.System.Network + 6, // 6: chef.automate.domain.ocid.ConfigRequest.V1.System.sql:type_name -> chef.automate.domain.ocid.ConfigRequest.V1.System.Sql + 7, // 7: chef.automate.domain.ocid.ConfigRequest.V1.System.ocid:type_name -> chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid + 12, // 8: chef.automate.domain.ocid.ConfigRequest.V1.System.tls:type_name -> chef.automate.infra.config.TLSCredentials + 13, // 9: chef.automate.domain.ocid.ConfigRequest.V1.System.Network.port:type_name -> google.protobuf.Int32Value + 14, // 10: chef.automate.domain.ocid.ConfigRequest.V1.System.Network.listen_ip:type_name -> google.protobuf.StringValue + 14, // 11: chef.automate.domain.ocid.ConfigRequest.V1.System.Log.level:type_name -> google.protobuf.StringValue + 15, // 12: chef.automate.domain.ocid.ConfigRequest.V1.System.Log.rotation_max_bytes:type_name -> google.protobuf.Int64Value + 13, // 13: chef.automate.domain.ocid.ConfigRequest.V1.System.Log.rotation_max_files:type_name -> google.protobuf.Int32Value + 13, // 14: chef.automate.domain.ocid.ConfigRequest.V1.System.Log.max_error_logs_per_second:type_name -> google.protobuf.Int32Value + 13, // 15: chef.automate.domain.ocid.ConfigRequest.V1.System.Sql.timeout:type_name -> google.protobuf.Int32Value + 13, // 16: chef.automate.domain.ocid.ConfigRequest.V1.System.Sql.pool_init_size:type_name -> google.protobuf.Int32Value + 13, // 17: chef.automate.domain.ocid.ConfigRequest.V1.System.Sql.pool_max_size:type_name -> google.protobuf.Int32Value + 13, // 18: chef.automate.domain.ocid.ConfigRequest.V1.System.Sql.pool_queue_max:type_name -> google.protobuf.Int32Value + 13, // 19: chef.automate.domain.ocid.ConfigRequest.V1.System.Sql.pool_queue_timeout:type_name -> google.protobuf.Int32Value + 8, // 20: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.chef_server_config:type_name -> chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.ChefServerConfig + 9, // 21: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.oauth_application_config:type_name -> chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.OauthApplicationConfig + 14, // 22: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.secret_key_base:type_name -> google.protobuf.StringValue + 14, // 23: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.ChefServerConfig.endpoint:type_name -> google.protobuf.StringValue + 14, // 24: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.ChefServerConfig.superuser:type_name -> google.protobuf.StringValue + 14, // 25: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.ChefServerConfig.ssl_verify_mode:type_name -> google.protobuf.StringValue + 10, // 26: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.OauthApplicationConfig.oauth_applications:type_name -> chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.OauthApplicationConfig.OauthApplication + 14, // 27: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.OauthApplicationConfig.OauthApplication.name:type_name -> google.protobuf.StringValue + 14, // 28: chef.automate.domain.ocid.ConfigRequest.V1.System.Ocid.OauthApplicationConfig.OauthApplication.redirect_uri:type_name -> google.protobuf.StringValue + 29, // [29:29] is the sub-list for method output_type + 29, // [29:29] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name +} + +func init() { file_config_ocid_config_request_proto_init() } +func file_config_ocid_config_request_proto_init() { + if File_config_ocid_config_request_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_config_ocid_config_request_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_config_ocid_config_request_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_config_ocid_config_request_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1_System); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_config_ocid_config_request_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1_Service); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_config_ocid_config_request_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1_System_Network); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_config_ocid_config_request_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1_System_Log); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_config_ocid_config_request_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1_System_Sql); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_config_ocid_config_request_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1_System_Ocid); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_config_ocid_config_request_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1_System_Ocid_ChefServerConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_config_ocid_config_request_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1_System_Ocid_OauthApplicationConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_config_ocid_config_request_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1_System_Ocid_OauthApplicationConfig_OauthApplication); 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_config_ocid_config_request_proto_rawDesc, + NumEnums: 0, + NumMessages: 11, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_config_ocid_config_request_proto_goTypes, + DependencyIndexes: file_config_ocid_config_request_proto_depIdxs, + MessageInfos: file_config_ocid_config_request_proto_msgTypes, + }.Build() + File_config_ocid_config_request_proto = out.File + file_config_ocid_config_request_proto_rawDesc = nil + file_config_ocid_config_request_proto_goTypes = nil + file_config_ocid_config_request_proto_depIdxs = nil +} diff --git a/api/config/ocid/config_request.proto b/api/config/ocid/config_request.proto new file mode 100644 index 00000000000..ceda1efbd4e --- /dev/null +++ b/api/config/ocid/config_request.proto @@ -0,0 +1,72 @@ +// -*- mode: protobuf; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- +syntax = "proto3"; + +package chef.automate.domain.ocid; +option go_package = "github.com/chef/automate/api/config/ocid"; + +import "config/shared/global.proto"; +import "config/shared/tls.proto"; +import "automate-grpc/protoc-gen-a2-config/api/a2conf/annotations.proto"; +import "google/protobuf/wrappers.proto"; + +message ConfigRequest { + option (chef.automate.api.service_config) = {name: "automate-cs-ocid"}; + + V1 v1 = 1; + + message V1 { + System sys = 1; + Service svc = 2; + + message System { + chef.automate.infra.config.Mlsa mlsa = 1; + Log log = 2; + Network network = 3; + Sql sql = 4; + Ocid ocid = 5; + chef.automate.infra.config.TLSCredentials tls = 6; + + message Network { + google.protobuf.Int32Value port = 1 [ (chef.automate.api.port) = { name: "service", default: 10114, protocol: "https" } ]; + google.protobuf.StringValue listen_ip = 2 [deprecated=true]; // The listen host is no longer setable(localhost only) + } + + message Log { + google.protobuf.StringValue level = 1; + google.protobuf.Int64Value rotation_max_bytes = 2; + google.protobuf.Int32Value rotation_max_files = 3; + google.protobuf.Int32Value max_error_logs_per_second = 4; + } + + message Sql { + google.protobuf.Int32Value timeout = 1; + google.protobuf.Int32Value pool_init_size = 2; + google.protobuf.Int32Value pool_max_size = 3; + google.protobuf.Int32Value pool_queue_max = 4; + google.protobuf.Int32Value pool_queue_timeout = 5; + } + + message Ocid { + ChefServerConfig chef_server_config = 1; + OauthApplicationConfig oauth_application_config = 2; + google.protobuf.StringValue secret_key_base = 3; + + message ChefServerConfig { + google.protobuf.StringValue endpoint = 1; + google.protobuf.StringValue superuser = 2; + google.protobuf.StringValue ssl_verify_mode = 3; + } + + message OauthApplicationConfig { + repeated OauthApplication oauth_applications = 1; + + message OauthApplication { + google.protobuf.StringValue name = 1; + google.protobuf.StringValue redirect_uri = 2; + } + } + } + } + message Service {} + } +} \ No newline at end of file diff --git a/components/automate-cli/cmd/chef-automate/automateConstants.go b/components/automate-cli/cmd/chef-automate/automateConstants.go index 3b293415ca2..a49a30596ec 100644 --- a/components/automate-cli/cmd/chef-automate/automateConstants.go +++ b/components/automate-cli/cmd/chef-automate/automateConstants.go @@ -72,6 +72,9 @@ const ( automate-backend-ctl applied --svc=automate-ha-%s ` + CONF_PREFIX_FOR_SHOW_APPS_CMD = ` + sudo chef-automate config %s` + SUDO_PASSWORD_CMD = `echo "%s" | sudo -S bash -c "` STOP_FE_SERVICES_CMD = `sudo systemctl stop chef-automate` diff --git a/components/automate-cli/cmd/chef-automate/config.go b/components/automate-cli/cmd/chef-automate/config.go index 555a54ec3db..8130d081561 100644 --- a/components/automate-cli/cmd/chef-automate/config.go +++ b/components/automate-cli/cmd/chef-automate/config.go @@ -66,6 +66,7 @@ func init() { //config gen flags genConfigCmd.Flags().BoolVarP(&configCmdFlags.overwriteFile, "overwrite", "O", false, "Overwrite existing config.toml") + configCmd.AddCommand(ocIdShowAppCmd) //config show flags showConfigCmd.Flags().BoolVarP(&configCmdFlags.overwriteFile, "overwrite", "O", false, "Overwrite existing config.toml [Standalone]") @@ -131,6 +132,10 @@ func init() { setConfigCmd.PersistentFlags().BoolVar(&configCmdFlags.postgresql, "pg", false, "Set toml configuration to the postgresql node[DUPLICATE]") setConfigCmd.PersistentFlags().SetAnnotation("pg", docs.Compatibility, []string{docs.CompatiblewithHA}) + //config oc-id-show-app flags + ocIdShowAppCmd.PersistentFlags().IntVar(&configCmdFlags.waitTimeout, waitTimeout, DEFAULT_TIMEOUT, "This flag sets the operation timeout duration (in seconds) for each individual node during the config oc-id-show-app process") + ocIdShowAppCmd.PersistentFlags().SetAnnotation(waitTimeout, docs.Compatibility, []string{docs.CompatiblewithStandalone, docs.CompatiblewithHA}) + configCmd.PersistentFlags().BoolVarP(&configCmdFlags.acceptMLSA, "auto-approve", "y", false, "Do not prompt for confirmation; accept defaults and continue") configCmd.PersistentFlags().Int64VarP(&configCmdFlags.timeout, "timeout", "t", 10, "Request timeout in seconds") configCmd.PersistentFlags().SetAnnotation("timeout", docs.Compatibility, []string{docs.CompatiblewithStandalone}) @@ -250,6 +255,16 @@ func checkConfigGenFileExist(outFile string, fsu fileutils.FileUtils) error { return nil } +var ocIdShowAppCmd = &cobra.Command{ + Use: "oc-id-show-app", + Short: "Get the details of the oauth applications registered with OC-ID", + Long: "Get the details of the oauth applications registered with OC-ID", + RunE: runOcIdShowAppCommand, + Annotations: map[string]string{ + docs.Tag: docs.BastionHost, + }, +} + func runShowCmd(cmd *cobra.Command, args []string) error { if isA2HARBFileExist() { @@ -720,6 +735,54 @@ func runSetCommand(cmd *cobra.Command, args []string) error { return nil } +func runOcIdShowAppCommand(cmd *cobra.Command, args []string) error { + if isA2HARBFileExist() { + infra, err := getAutomateHAInfraDetails() + if err != nil { + return err + } + if configCmdFlags.waitTimeout < DEFAULT_TIMEOUT { + return errors.Errorf("The operation timeout duration for each individual node during the config oc-id-show-app process should be set to a value greater than %v seconds.", DEFAULT_TIMEOUT) + } + + frontendCmd := fmt.Sprintf(CONF_PREFIX_FOR_SHOW_APPS_CMD, OCID_SHOW_APP) + frontend := &Cmd{ + CmdInputs: &CmdInputs{ + Cmd: frontendCmd, + WaitTimeout: configCmdFlags.waitTimeout, + Single: true, + Args: args, + ErrorCheckEnableInOutput: true, + NodeType: true, + }, + } + + nodeMap := &NodeTypeAndCmd{ + Frontend: frontend, + Infra: infra, + } + sshUtil := NewSSHUtil(&SSHConfig{}) + cmdUtil := NewRemoteCmdExecutor(nodeMap, sshUtil, writer) + + _, cmdExecErr := cmdUtil.Execute() + + if cmdExecErr != nil { + return cmdExecErr + } + } else { + oauthAppDetailsFilePath := "/hab/svc/automate-cs-ocid/config/registered_oauth_applications.yaml" + content, err := os.ReadFile(oauthAppDetailsFilePath) + if err != nil { + printErr := "Could not find the file with the registered application details. Pls restart OC-ID to generate it." + writer.Errorln(printErr) + return err + } + registeredAppDetails := string(content) + writer.Println(registeredAppDetails) + } + return nil +} + type ResultConfigSet struct { HostIP string Output string diff --git a/components/automate-cli/cmd/chef-automate/constants.go b/components/automate-cli/cmd/chef-automate/constants.go index 51c9b547c02..70df0232c82 100644 --- a/components/automate-cli/cmd/chef-automate/constants.go +++ b/components/automate-cli/cmd/chef-automate/constants.go @@ -29,4 +29,5 @@ const ( CHEF_SERVER_TOML = "chef_server.config.toml" POSTGRESQL_TOML = "postgresql.config.toml" OPENSEARCH_TOML = "opensearch.config.toml" + OCID_SHOW_APP = "oc-id-show-app" ) diff --git a/components/automate-cs-nginx/habitat/config/chef_https.conf b/components/automate-cs-nginx/habitat/config/chef_https.conf index b45d0d99b2f..d0821668880 100644 --- a/components/automate-cs-nginx/habitat/config/chef_https.conf +++ b/components/automate-cs-nginx/habitat/config/chef_https.conf @@ -246,8 +246,8 @@ # HABITAT: NO ADDONS YET # include /var/opt/opscode/nginx/etc/addon.d/*_external.conf; - # oc-id - include {{pkg.svc_config_path}}/oc-id-external.conf; + # ocid + include {{pkg.svc_config_path}}/ocid-external.conf; location /_route/ { default_type 'application/json'; diff --git a/components/automate-cs-nginx/habitat/config/nginx.conf b/components/automate-cs-nginx/habitat/config/nginx.conf index f98804a1c69..a24ec708e84 100644 --- a/components/automate-cs-nginx/habitat/config/nginx.conf +++ b/components/automate-cs-nginx/habitat/config/nginx.conf @@ -69,6 +69,13 @@ http { keepalive 8; } + upstream automate-cs-ocid { +{{~#eachAlive bind.automate-cs-ocid.members as |member|}} + server 127.0.0.1:{{member.cfg.http-port}}; +{{~/eachAlive}} + keepalive 8; + } + upstream opscode_solr4 { {{~#eachAlive bind.automate-es-gateway.members as |member|}} server 127.0.0.1:{{member.cfg.http-port}}; diff --git a/components/automate-cs-nginx/habitat/config/oc-id-external.conf b/components/automate-cs-nginx/habitat/config/oc-id-external.conf deleted file mode 100644 index 2b03e9f0dec..00000000000 --- a/components/automate-cs-nginx/habitat/config/oc-id-external.conf +++ /dev/null @@ -1,7 +0,0 @@ -#### TODO: remove this or turn on oc_id -## rewrite ^/id$ /id/ permanent; -## -## location ~ "^/id/.*$" { -## proxy_redirect http://oc_id /; -## proxy_pass http://oc_id; -## } diff --git a/components/automate-cs-nginx/habitat/config/ocid-external.conf b/components/automate-cs-nginx/habitat/config/ocid-external.conf new file mode 100644 index 00000000000..22daa2b18f9 --- /dev/null +++ b/components/automate-cs-nginx/habitat/config/ocid-external.conf @@ -0,0 +1,13 @@ +location ~ "^/id/.*$" { + allow 127.0.0.1; + allow ::1; + deny all; + proxy_pass http://automate-cs-ocid; + + proxy_ssl_certificate {{pkg.svc_config_path}}/service.crt; + proxy_ssl_certificate_key {{pkg.svc_config_path}}/service.key; + proxy_ssl_trusted_certificate {{pkg.svc_config_path}}/root_ca.crt; + proxy_ssl_protocols TLSv1.2 TLSv1.3; + proxy_ssl_verify on; + proxy_ssl_session_reuse on; +} diff --git a/components/automate-cs-nginx/habitat/config/resolver.lua b/components/automate-cs-nginx/habitat/config/resolver.lua index 68378aaac8e..b6dedcbe9d5 100755 --- a/components/automate-cs-nginx/habitat/config/resolver.lua +++ b/components/automate-cs-nginx/habitat/config/resolver.lua @@ -9,6 +9,7 @@ local upstream_resolver = { } -- These names map directly to named upstreams upstream_resolver.chef = "opscode_chef" upstream_resolver.erchef = "automate-cs-oc-erchef" +upstream_resolver.ocid = "automate-cs-ocid" upstream_resolver.acct = "opscode_account" -- Resolve an upstream, applying any necessary darklaunch controls. diff --git a/components/automate-cs-nginx/habitat/plan.sh b/components/automate-cs-nginx/habitat/plan.sh index e7eff6222b8..20efb5fae98 100644 --- a/components/automate-cs-nginx/habitat/plan.sh +++ b/components/automate-cs-nginx/habitat/plan.sh @@ -34,6 +34,7 @@ pkg_binds=( [automate-cs-bookshelf]="http-port" [automate-cs-oc-erchef]="http-port" [automate-es-gateway]="http-port" + [automate-cs-ocid]="http-port" ) pkg_binds_optional=( [automate-gateway]="port" diff --git a/components/automate-cs-ocid/Makefile b/components/automate-cs-ocid/Makefile new file mode 100644 index 00000000000..d2972343e26 --- /dev/null +++ b/components/automate-cs-ocid/Makefile @@ -0,0 +1,2 @@ +package: + cd ../.. && hab studio run "source .studiorc; build components/automate-cs-ocid" \ No newline at end of file diff --git a/components/automate-cs-ocid/habitat/config/root_ca.crt b/components/automate-cs-ocid/habitat/config/root_ca.crt new file mode 100644 index 00000000000..124b1e68af8 --- /dev/null +++ b/components/automate-cs-ocid/habitat/config/root_ca.crt @@ -0,0 +1 @@ +{{~ cfg.tls.root_cert_contents ~}} diff --git a/components/automate-cs-ocid/habitat/config/scripts/set_env_vars.sh b/components/automate-cs-ocid/habitat/config/scripts/set_env_vars.sh new file mode 100644 index 00000000000..bb9fdf6df68 --- /dev/null +++ b/components/automate-cs-ocid/habitat/config/scripts/set_env_vars.sh @@ -0,0 +1,6 @@ +export ENV_CONFIG_FILE_PATH="$OCID_PKG_CONFIG_FOLDER_PATH/settings/$RAILS_ENV.yml" +export CHEF_SERVER_ENDPOINT="{{cfg.ocid.chef_server_config.endpoint}}" +export CHEF_SERVER_SUPERUSER="{{cfg.ocid.chef_server_config.superuser}}" +export CHEF_SERVER_SSL_VERIFY_MODE="{{cfg.ocid.chef_server_config.ssl_verify_mode}}" + +ruby "{{pkg.svc_config_path}}/tasks/set_env_vars.rb" diff --git a/components/automate-cs-ocid/habitat/config/scripts/set_secret_key_base.sh b/components/automate-cs-ocid/habitat/config/scripts/set_secret_key_base.sh new file mode 100644 index 00000000000..6a87c39ba1c --- /dev/null +++ b/components/automate-cs-ocid/habitat/config/scripts/set_secret_key_base.sh @@ -0,0 +1,9 @@ +export WEBUI_SRC_PATH="/hab/svc/automate-cs-oc-erchef/data/webui_priv.pem" +export SECRET_KEY_BASE_FILE_PATH="$OCID_PKG_CONFIG_FOLDER_PATH/secret_key_base.txt" +export CUSTOM_SECRET_KEY_BASE="{{cfg.ocid.secret_key_base}}" + +ruby "{{pkg.svc_config_path}}/tasks/save_secret_key_base_file.rb" + +# Using `2>/dev/null` along with `cat` command suppresses the error +# in case file doesn't exist and it returns empty string. +export SECRET_KEY_BASE=`cat $SECRET_KEY_BASE_FILE_PATH 2>/dev/null` diff --git a/components/automate-cs-ocid/habitat/config/scripts/set_webui_key.sh b/components/automate-cs-ocid/habitat/config/scripts/set_webui_key.sh new file mode 100644 index 00000000000..2288ee79eaf --- /dev/null +++ b/components/automate-cs-ocid/habitat/config/scripts/set_webui_key.sh @@ -0,0 +1,9 @@ +WEBUI_SRC_PATH="/hab/svc/automate-cs-oc-erchef/data/webui_priv.pem" +export WEBUI_KEY=`sed ':a;N;$!ba;s/\n/\\n/g' $WEBUI_SRC_PATH` +if [[ -z $WEBUI_KEY ]] + then + echo "Could not find the webui key in erchef service. Pls wait for erchef to be running before OCID can be started..." + exit 1 +fi +export PRIVATE_CHEF_SECRETS_PATH="$OCID_PKG_CONFIG_FOLDER_PATH/private-chef-secrets.json" +ruby "{{pkg.svc_config_path}}/tasks/set_webui_key.rb" diff --git a/components/automate-cs-ocid/habitat/config/service.crt b/components/automate-cs-ocid/habitat/config/service.crt new file mode 100644 index 00000000000..a4687a0e729 --- /dev/null +++ b/components/automate-cs-ocid/habitat/config/service.crt @@ -0,0 +1 @@ +{{~ cfg.tls.cert_contents ~}} diff --git a/components/automate-cs-ocid/habitat/config/service.key b/components/automate-cs-ocid/habitat/config/service.key new file mode 100644 index 00000000000..4732719c181 --- /dev/null +++ b/components/automate-cs-ocid/habitat/config/service.key @@ -0,0 +1 @@ +{{~ cfg.tls.key_contents ~}} diff --git a/components/automate-cs-ocid/habitat/config/tasks/oauth_application.rake b/components/automate-cs-ocid/habitat/config/tasks/oauth_application.rake new file mode 100644 index 00000000000..04d65a95064 --- /dev/null +++ b/components/automate-cs-ocid/habitat/config/tasks/oauth_application.rake @@ -0,0 +1,47 @@ +require 'active_record/base' +require 'fileutils' +namespace :oauth_application do + desc "Task to register oauth applications" + task :register => :environment do + # This task expects an environment variable to be set with a json string + # containing a list of oauth application objects. The list should have the following schema: + # [{"name"=>"", "redirect_uri"=>""}] + oauth_apps_config_json = ENV['OAUTH_APPS_CONFIG_JSON'] + oauth_apps_config = JSON.parse(oauth_apps_config_json) + oauth_applications = oauth_apps_config && oauth_apps_config["oauth_applications"] + if oauth_applications.present? + ActiveRecord::Base.transaction do + # This will make sure a write lock is enabled while running this transaction + # so that no other write operation can happen on this table during this transaction is in process. + # Read operations will be allowed even during the lock as it has applied a "SHARE" lock. + # Only when the current transaction is completed the lock will be revoked and writes will be allowed. + ActiveRecord::Base.connection.execute('LOCK oauth_applications IN SHARE MODE') + oauth_applications.each do |oauth_application| + # Making sure the iteration doesn't execute in case of empty value for app name + next if oauth_application['name'].blank? + app = Doorkeeper::Application.find_or_create_by(:name => oauth_application['name']) + # Updating redirect_uri of the app record only if it's different + # from the existing value in case it's an existing record + app.update!(:redirect_uri => oauth_application['redirect_uri']) if (app.redirect_uri != oauth_application['redirect_uri']) + end + end + end + end + + desc "Task to generate a file with the details of all the registered oauth application under OC-ID" + task :save_registered_app_details_to_file => :environment do + registered_apps = Doorkeeper::Application.select(:name, :redirect_uri, :uid, :secret).group_by(&:name).as_json + yaml_file_content = registered_apps.to_yaml + file_path = ENV['REGISTERED_OAUTH_APPS_FILE_PATH'] + begin + # Making sure the directory is created before writing in the file + dir = File.dirname(file_path) + unless File.directory?(dir) + FileUtils.mkdir_p(dir) + end + File.write(file_path, yaml_file_content) + rescue StandardError => e + puts e.inspect + end + end +end diff --git a/components/automate-cs-ocid/habitat/config/tasks/save_secret_key_base_file.rb b/components/automate-cs-ocid/habitat/config/tasks/save_secret_key_base_file.rb new file mode 100644 index 00000000000..6ca36c39531 --- /dev/null +++ b/components/automate-cs-ocid/habitat/config/tasks/save_secret_key_base_file.rb @@ -0,0 +1,67 @@ +require 'base64' + +class SecretKeyBaseGenerator + # This constant will be used to extract the first `n` characters from the erchef webui private key + # which will be encrypted to generate the secret_key_base for OCID rails app. + WEBUI_KEY_SUBSTRING_LEN = 75 + class << self + # We will save the secret_key_base in a file which will later be used + # to set it in the OCID environment configuration + def save_secret_key_base_in_file + begin + custom_secret_key_base = ENV['CUSTOM_SECRET_KEY_BASE'] + + # If user has provided any custom secret_key_base in automate configuration + # it will be considered, otherwise we will generate a secret_key_base from the erchef webui_key + secret_key_base = if (custom_secret_key_base.nil? || custom_secret_key_base.empty?) + generate_secret_key_base + else + custom_secret_key_base + end + + secret_key_base_file_path = ENV['SECRET_KEY_BASE_FILE_PATH'] + + if File.exists?(secret_key_base_file_path) + puts "SECRET_KEY_BASE file exists. File will be overwritten.." + else + puts "SECRET_KEY_BASE file doesn't exist. It will be generated.." + dir = File.dirname(secret_key_base_file_path) + unless File.directory?(dir) + FileUtils.mkdir_p(dir) + end + end + + File.write(secret_key_base_file_path, secret_key_base) + rescue StandardError => e + puts "ERROR: Failed to generate secret_key_base file for OCID. Error Details: #{e.inspect}" + puts "OCID secret_key_base will be assigned a default value..." + end + end + + # Logic to generate a dynamic secret_key_base for OCID + def generate_secret_key_base + webui_priv_pem_path = ENV['WEBUI_SRC_PATH'] + secret_key_base = nil + begin + webui_priv_key = File.read(webui_priv_pem_path) + # Get first `WEBUI_KEY_SUBSTRING_LEN` characters + webui_key_substring_for_encryption = webui_priv_key[0..(WEBUI_KEY_SUBSTRING_LEN-1)] + secret_key_base = Base64.encode64(webui_key_substring_for_encryption) + rescue StandardError => e + puts "Could not find the webui key in erchef service for generation of secret_key_base for OCID. OCID secret_key_base will assume the default value..." + return nil + end + secret_key_base = tidy_up_secret_key_base(secret_key_base) + end + + # This method is to cleanup any invalid character from the generated `secret_key_base` + def tidy_up_secret_key_base(secret_key_base) + # Remove all white space characters + secret_key_base.gsub!(/\s/, '') + + secret_key_base + end + end +end + +SecretKeyBaseGenerator.save_secret_key_base_in_file diff --git a/components/automate-cs-ocid/habitat/config/tasks/set_env_vars.rb b/components/automate-cs-ocid/habitat/config/tasks/set_env_vars.rb new file mode 100644 index 00000000000..1b0e1c19bf8 --- /dev/null +++ b/components/automate-cs-ocid/habitat/config/tasks/set_env_vars.rb @@ -0,0 +1,17 @@ +require 'yaml' +env_config_file_path = ENV['ENV_CONFIG_FILE_PATH'] +env_config = YAML.load_file(env_config_file_path) +override_configs = { + 'endpoint' => ENV['CHEF_SERVER_ENDPOINT'], + 'superuser' => ENV['CHEF_SERVER_SUPERUSER'], + 'ssl_verify_mode' => ENV['CHEF_SERVER_SSL_VERIFY_MODE'] +} +env_config['chef'] ||= {} +env_config['chef'].merge!(override_configs) + +# Overriding the default `secret_key_base` with the custom/generated value +# of `secret_key_base` set in the environment only if the env variable is set. +env_config['secret_key_base'] = ENV['SECRET_KEY_BASE'] unless (ENV['SECRET_KEY_BASE'].nil? || ENV['SECRET_KEY_BASE'].empty?) + +env_config_yml = env_config.to_yaml +File.write(env_config_file_path, env_config_yml) diff --git a/components/automate-cs-ocid/habitat/config/tasks/set_webui_key.rb b/components/automate-cs-ocid/habitat/config/tasks/set_webui_key.rb new file mode 100644 index 00000000000..22357308313 --- /dev/null +++ b/components/automate-cs-ocid/habitat/config/tasks/set_webui_key.rb @@ -0,0 +1,9 @@ +require 'json' + +webui_key = ENV['WEBUI_KEY'] +private_chef_secrets_path = ENV['PRIVATE_CHEF_SECRETS_PATH'] + +private_chef_secrets_content = File.read(private_chef_secrets_path) +private_chef_secrets_hash = JSON.parse(private_chef_secrets_content) +private_chef_secrets_hash["chef-server"]["webui_key"] = webui_key +File.write(private_chef_secrets_path, JSON.dump(private_chef_secrets_hash)) diff --git a/components/automate-cs-ocid/habitat/default.toml b/components/automate-cs-ocid/habitat/default.toml new file mode 100644 index 00000000000..d429fa71fb6 --- /dev/null +++ b/components/automate-cs-ocid/habitat/default.toml @@ -0,0 +1,43 @@ +# NOTE(ssd) 2018-07-25: These two are not exposed in public-facing +# configuration as changing them would break everything. +fips_enabled = false +ip_mode = "ipv4" +rails_env="production" +rack_env="production" + +[network] +port=10114 +listen_ip="0.0.0.0" + +[tls] +root_cert_contents = "" +cert_contents = "" +key_contents = "" + +[log] +level = "info" +rotation_max_bytes = 104857600 +rotation_max_files = 10 +rotation_max_megabytes = 100 +max_error_logs_per_second = 1000 + +[sql] +timeout = 5000 +pool_init_size = 20 +pool_max_size = 50 +pool_queue_max = 20 +pool_queue_timeout = 2000 +user="automate-cs-ocid" +db_name="automate-cs-ocid" + +[ocid] + secret_key_base = "" + [ocid.chef_server_config] + endpoint="https://127.0.0.1:443" + superuser="pivotal" + # By default the certificate verification is disabled for chef-server(erchef) + # But if you have a valid certificate in your chef-server then you should + # set it to: verify_peer + ssl_verify_mode="verify_none" + [ocid.v1.sys.ocid.oauth_application_config] + [[ocid.v1.sys.ocid.oauth_application_config.oauth_applications]] \ No newline at end of file diff --git a/components/automate-cs-ocid/habitat/hooks/health-check b/components/automate-cs-ocid/habitat/hooks/health-check new file mode 100644 index 00000000000..31d9adcd439 --- /dev/null +++ b/components/automate-cs-ocid/habitat/hooks/health-check @@ -0,0 +1,16 @@ +#!/bin/sh +# +curlOpts="-X GET -sS --fail --max-time 2" +curlOpts="$curlOpts --cert {{pkg.svc_config_path}}/service.crt" +curlOpts="$curlOpts --key {{pkg.svc_config_path}}/service.key" +curlOpts="$curlOpts --cacert {{pkg.svc_config_path}}/root_ca.crt" +curlOpts="$curlOpts --resolve automate-cs-ocid:{{cfg.network.port}}:127.0.0.1" +curlOpts="$curlOpts --noproxy automate-cs-ocid" +# shellcheck disable=SC2086 +output=$({{pkgPathFor "core/curl"}}/bin/curl $curlOpts "http://automate-cs-ocid:{{cfg.network.port}}/id/signin") +res=$? +if [ "0" != "$res" ]; then + echo "health check curl command returned exit code ${res}:" + echo "$output" + exit 2 +fi \ No newline at end of file diff --git a/components/automate-cs-ocid/habitat/hooks/init b/components/automate-cs-ocid/habitat/hooks/init new file mode 100644 index 00000000000..4de9c4dde92 --- /dev/null +++ b/components/automate-cs-ocid/habitat/hooks/init @@ -0,0 +1,11 @@ +#!{{pkgPathFor "core/bash"}}/bin/bash + +# *** WARNING *** +# 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. +# +# Please put potentially long-running and/or complex operations in the run hook rather +# than the init hook until the issue[0] has been resolved. +# +# [0] https://github.com/habitat-sh/habitat/issues/1973 \ No newline at end of file diff --git a/components/automate-cs-ocid/habitat/hooks/run b/components/automate-cs-ocid/habitat/hooks/run new file mode 100644 index 00000000000..3684b11902d --- /dev/null +++ b/components/automate-cs-ocid/habitat/hooks/run @@ -0,0 +1,64 @@ +#!{{pkgPathFor "core/bash"}}/bin/bash -e + +exec 2>&1 + +{{pkgPathFor "chef/mlsa"}}/bin/accept {{cfg.mlsa.accept}} + +# Copying this file into oc_id application directory so that this file +# can be executed as a rake task in the later stage of the application lifecycle. +cp "{{pkg.svc_config_path}}/tasks/oauth_application.rake" $(hab pkg path "chef/oc_id")/oc_id/lib/tasks + +cd {{pkgPathFor "chef/oc_id"}}/oc_id + +bundle config path "vendor/bundle" + +# TODO :: Remove following line once new ocid hab package is used +echo "gem 'tzinfo-data'" >> Gemfile +bundle install + +export RAILS_ENV="{{cfg.rails_env}}" +export RACK_ENV="{{cfg.rack_env}}" + +export HOME={{pkg.svc_var_path}} +export DBNAME="{{cfg.sql.db_name}}" + +mkdir -p "{{pkg.svc_var_path}}/etc" +render-template pg.env "{{pkg.svc_var_path}}/etc/pg.env" + +pg-helper rename-if-exists oc_id "$DBNAME" +pg-helper ensure-service-database "$DBNAME" +pg-helper create-extension "$DBNAME" "uuid-ossp" +pg-helper fix-permissions "$DBNAME" + +source "{{pkg.svc_var_path}}/etc/pg.env" + +export OCID_PKG_CONFIG_FOLDER_PATH="{{pkgPathFor "chef/oc_id"}}/oc_id/config" + +# Setting the secret_key_base for OCID rails application +source "{{pkg.svc_config_path}}/scripts/set_secret_key_base.sh" + +# Set webui key from erchef component +source "{{pkg.svc_config_path}}/scripts/set_webui_key.sh" + +# Setup environment specific configurations for integration with erchef +source "{{pkg.svc_config_path}}/scripts/set_env_vars.sh" + +# NOTE: Please keep this statement just before running +# any environment specific command e.g. starting rails server, running rake tasks etc. +# The running server will follow the configurations that are +# exported from this JSON file. So if this file is getting updated +# pls make sure export happens after the file is updated. +export CHEF_SECRETS_DATA=$(cat config/private-chef-secrets.json) + +bundle exec bin/rake db:migrate + +# Registering oauth applications +export OAUTH_APPS_CONFIG_JSON='{{toJson cfg.ocid.oauth_application_config}}' +bundle exec bin/rake oauth_application:register +# Saving registered oauth application details in a file +export REGISTERED_OAUTH_APPS_FILE_PATH="{{pkg.svc_config_path}}/registered_oauth_applications.yaml" +bundle exec bin/rake oauth_application:save_registered_app_details_to_file + +bundle exec bin/unicorn -p "{{cfg.network.port}}" + +secrets-helper generate oc_id.superuser_id 32 --if-not-exists diff --git a/components/automate-cs-ocid/habitat/plan.sh b/components/automate-cs-ocid/habitat/plan.sh new file mode 100644 index 00000000000..673d842b537 --- /dev/null +++ b/components/automate-cs-ocid/habitat/plan.sh @@ -0,0 +1,60 @@ +#shellcheck disable=SC2034 +#shellcheck disable=SC2039 +#shellcheck disable=SC2154 +#stable channel + +pkg_name="automate-cs-ocid" +pkg_description="Wrapper package for chef/ocid" +pkg_origin="chef" +# WARNING: Version managed by .expeditor/update_chef_server.sh +pkg_version="15.4.0" +vendor_origin="chef" +pkg_maintainer="Chef Software Inc. " +pkg_license=("Chef-MLSA") + +pkg_svc_user=root +pkg_svc_group=root +pkg_svc_run="return 0" + +pkg_upstream_url="https://www.chef.io/automate" +pkg_deps=( + chef/mlsa + "${local_platform_tools_origin:-chef}/automate-platform-tools" + # WARNING: Version pin managed by .expeditor/update_chef_server.sh + "${vendor_origin}/oc_id/15.4.0/20230105061030" +) + +pkg_binds=( + [automate-pg-gateway]="port" + [pg-sidecar-service]="port" +) +pkg_exports=( + [http-host]=network.host + [http-port]=network.port +) + +pkg_exposes=(http-port) + +pkg_scaffolding="${local_scaffolding_origin:-chef}/automate-scaffolding" +automate_scaffolding_include_templates=(sqerl.config) + +do_prepare() { + GO_LDFLAGS="-X main.RubyPath=$(hab pkg path 'core/ruby27')" + export GO_LDFLAGS + + build_line "Setting link for /usr/bin/env to 'coreutils'" + [[ ! -f /usr/bin/env ]] && ln -s "$(pkg_path_for coreutils)/bin/env" /usr/bin/env + return 0 +} + +do_download() { + return 0 +} + +do_build() { + return 0 +} + +do_install() { + return 0 +} diff --git a/components/automate-cs-ocid/habitat/templates/pg.env b/components/automate-cs-ocid/habitat/templates/pg.env new file mode 100644 index 00000000000..40085cf9477 --- /dev/null +++ b/components/automate-cs-ocid/habitat/templates/pg.env @@ -0,0 +1 @@ +export DATABASE_URL="{{ pg_uri "automate-cs-ocid" }}" diff --git a/components/automate-cs-ocid/package.meta b/components/automate-cs-ocid/package.meta new file mode 100644 index 00000000000..01804cc9054 --- /dev/null +++ b/components/automate-cs-ocid/package.meta @@ -0,0 +1,4 @@ +{ + "name": "chef/automate-cs-ocid", + "uses_platform_scaffolding": true +} diff --git a/components/automate-deployment/pkg/assets/binds.go b/components/automate-deployment/pkg/assets/binds.go index 0a5fec4d2e8..37308bbd529 100644 --- a/components/automate-deployment/pkg/assets/binds.go +++ b/components/automate-deployment/pkg/assets/binds.go @@ -24,7 +24,7 @@ automate-cds REQUIRED compliance-service automate-cds BINDING_MODE strict automate-cs-bookshelf REQUIRED automate-pg-gateway pg-sidecar-service automate-cs-bookshelf BINDING_MODE strict -automate-cs-nginx REQUIRED automate-cs-bookshelf automate-cs-oc-erchef automate-es-gateway +automate-cs-nginx REQUIRED automate-cs-bookshelf automate-cs-oc-erchef automate-cs-ocid automate-es-gateway automate-cs-nginx OPTIONAL automate-gateway automate-cs-nginx BINDING_MODE relaxed automate-cs-oc-bifrost REQUIRED automate-pg-gateway pg-sidecar-service @@ -32,6 +32,8 @@ automate-cs-oc-bifrost BINDING_MODE strict automate-cs-oc-erchef REQUIRED automate-cs-bookshelf automate-cs-oc-bifrost automate-es-gateway automate-pg-gateway pg-sidecar-service automate-cs-oc-erchef OPTIONAL automate-gateway automate-cs-oc-erchef BINDING_MODE relaxed +automate-cs-ocid REQUIRED automate-pg-gateway pg-sidecar-service +automate-cs-ocid BINDING_MODE strict deployment-service BINDING_MODE strict automate-dex REQUIRED automate-pg-gateway pg-sidecar-service automate-dex BINDING_MODE strict diff --git a/components/automate-deployment/pkg/backup/spec.go b/components/automate-deployment/pkg/backup/spec.go index 10746982dcf..249c9643a03 100644 --- a/components/automate-deployment/pkg/backup/spec.go +++ b/components/automate-deployment/pkg/backup/spec.go @@ -416,6 +416,16 @@ func DefaultSpecs(serviceNames []string) []Spec { }, }, }, + { + Name: "automate-cs-ocid", + WriteMetadata: true, + SyncDbsV2: []DatabaseDumpOperationV2{ + { + Name: "automate-cs-ocid", + User: "automate-cs-ocid", + }, + }, + }, { Name: "automate-cs-oc-erchef", WriteMetadata: true, diff --git a/components/automate-deployment/pkg/services/internal/generated/gen.go b/components/automate-deployment/pkg/services/internal/generated/gen.go index f9c32fa429d..68f102a5ce3 100644 --- a/components/automate-deployment/pkg/services/internal/generated/gen.go +++ b/components/automate-deployment/pkg/services/internal/generated/gen.go @@ -389,6 +389,16 @@ var ProductMetadataJSON = ` ] } }, + { + "name": "chef/automate-cs-ocid", + "metadata": { + "name": "chef/automate-cs-ocid", + "data_service": false, + "binlinks": null, + "uses_platform_scaffolding": true, + "bootstrap": null + } + }, { "name": "chef/automate-cs-nginx", "metadata": { @@ -662,7 +672,8 @@ var ProductMetadataJSON = ` "chef/automate-cs-bookshelf", "chef/automate-cs-oc-bifrost", "chef/automate-cs-oc-erchef", - "chef/automate-cs-nginx" + "chef/automate-cs-nginx", + "chef/automate-cs-ocid" ], "packages": null, "dependencies": [ diff --git a/components/automate-load-balancer/habitat/config/automate-cs-nginx-location.conf b/components/automate-load-balancer/habitat/config/automate-cs-nginx-location.conf index ecf2e301c8e..e74c15d0848 100644 --- a/components/automate-load-balancer/habitat/config/automate-cs-nginx-location.conf +++ b/components/automate-load-balancer/habitat/config/automate-cs-nginx-location.conf @@ -63,3 +63,19 @@ location ~ ^/(_status|compliance/organizations|organizations|users|authenticate_ proxy_http_version 1.1; proxy_set_header Connection ""; } + +rewrite ^/id$ https://$host/id/ permanent; +location ~ "^/id/.*$" { + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + + proxy_ssl_verify off; + proxy_pass https://cs-nginx; + proxy_redirect https://cs-nginx /; + + # Required to make persistent connections happen + proxy_http_version 1.1; + proxy_set_header Connection ""; +} diff --git a/components/automate-postgresql/habitat/config/pg_ident.conf b/components/automate-postgresql/habitat/config/pg_ident.conf index cbb681ed146..138738f69fe 100644 --- a/components/automate-postgresql/habitat/config/pg_ident.conf +++ b/components/automate-postgresql/habitat/config/pg_ident.conf @@ -6,5 +6,6 @@ service-map automate-postgresql workflow # for sqitch from pg-sidecar service-map automate-postgresql automate-cs-bookshelf # for sqitch from pg-sidecar service-map automate-postgresql automate-cs-oc-bifrost # for sqitch from pg-sidecar service-map automate-postgresql automate-cs-oc-erchef # for sqitch from pg-sidecar +service-map automate-postgresql automate-cs-ocid # for sqitch from pg-sidecar service-map /^(.*)-service \1 service-map /^(.*) \1 diff --git a/components/docs-chef-io/data/automate/cli_chef_automate/commands/chef-automate_config.yaml b/components/docs-chef-io/data/automate/cli_chef_automate/commands/chef-automate_config.yaml index 7de4fbc7b11..ec76196c0f3 100644 --- a/components/docs-chef-io/data/automate/cli_chef_automate/commands/chef-automate_config.yaml +++ b/components/docs-chef-io/data/automate/cli_chef_automate/commands/chef-automate_config.yaml @@ -28,6 +28,7 @@ inherited_options: see_also: - chef-automate - Chef Automate CLI - gen - generate the Automate HA configuration +- oc-id-show-app - Get the details of the oauth applications registered with OC-ID - patch - patch the Chef Automate configuration - set - set the Chef Automate configuration - show - show the Chef Automate configuration diff --git a/components/docs-chef-io/data/automate/cli_chef_automate/commands/chef-automate_config_oc-id-show-app.yaml b/components/docs-chef-io/data/automate/cli_chef_automate/commands/chef-automate_config_oc-id-show-app.yaml new file mode 100644 index 00000000000..716dc5c8ae7 --- /dev/null +++ b/components/docs-chef-io/data/automate/cli_chef_automate/commands/chef-automate_config_oc-id-show-app.yaml @@ -0,0 +1,38 @@ +name: chef-automate config oc-id-show-app +synopsis: | + Get the details of the oauth applications registered with OC-ID +usage: chef-automate config oc-id-show-app [flags] +description: | + Get the details of the oauth applications registered with OC-ID +options: +- name: help + shorthand: h + default_value: "false" + usage: help for oc-id-show-app +- name: wait-timeout + default_value: "180" + usage: | + This flag sets the operation timeout duration (in seconds) for each individual node during the config oc-id-show-app process + compatible_with_options: Automate +inherited_options: +- name: auto-approve + shorthand: "y" + default_value: "false" + usage: Do not prompt for confirmation; accept defaults and continue +- name: debug + shorthand: d + default_value: "false" + usage: Enable debug output +- name: no-check-version + default_value: "false" + usage: Disable version check +- name: result-json + usage: Write command result as JSON to PATH +- name: timeout + shorthand: t + default_value: "10" + usage: Request timeout in seconds + compatible_with_options: Automate +see_also: +- chef-automate config - Chef Automate configuration +supported_on: Bastion diff --git a/integration/tests/testing_ocid.sh b/integration/tests/testing_ocid.sh new file mode 100644 index 00000000000..49ad8eb1841 --- /dev/null +++ b/integration/tests/testing_ocid.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +#shellcheck disable=SC2034 +test_name="ocid" + +#shellcheck source=.studio/chef-server-collection +source .studio/chef-server-collection + +do_deploy() { + #shellcheck disable=SC2154 + chef-automate deploy config.toml \ + --hartifacts "$test_hartifacts_path" \ + --override-origin "$HAB_ORIGIN" \ + --manifest-dir "$test_manifest_path" \ + --enable-chef-server \ + --admin-password chefautomate \ + --accept-terms-and-mlsa +} + +do_test_deploy() { + test_if_env_vars_are_configured + test_if_webui_key_is_patched + test_if_login_working_with_correct_credentials + test_if_login_failing_with_incorrect_credentials +} diff --git a/integration/tests/testing_ocid_config_patch.sh b/integration/tests/testing_ocid_config_patch.sh new file mode 100644 index 00000000000..83f15ecb891 --- /dev/null +++ b/integration/tests/testing_ocid_config_patch.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +#shellcheck disable=SC2034 +test_name="ocid-config-patch" + +#shellcheck source=.studio/chef-server-collection +source .studio/chef-server-collection + +do_deploy() { + #shellcheck disable=SC2154 + chef-automate deploy config.toml \ + --hartifacts "$test_hartifacts_path" \ + --override-origin "$HAB_ORIGIN" \ + --manifest-dir "$test_manifest_path" \ + --enable-chef-server \ + --admin-password chefautomate \ + --accept-terms-and-mlsa +} + +do_create_config() { + do_create_config_default + + #shellcheck disable=SC2154 + cat <> "$test_config_path" +[ocid.v1.sys.ocid.chef_server_config] + endpoint="https://test-url.com:443" + superuser="testuser" + ssl_verify_mode="verify_peer" +[ocid.v1.sys.ocid.oauth_application_config] + [[ocid.v1.sys.ocid.oauth_application_config.oauth_applications]] + name = "test-supermarket" + redirect_uri = "https://sampleurl.com/auth/chef_oauth2/callback" +EOF +} + +do_test_deploy() { + test_if_env_vars_are_configured_after_patch + test_if_oauthapps_are_patched_correctly +} diff --git a/products.meta b/products.meta index b1bab76aa68..e0ff9eedcdf 100644 --- a/products.meta +++ b/products.meta @@ -35,6 +35,7 @@ "chef/automate-cs-bookshelf", "chef/automate-cs-oc-bifrost", "chef/automate-cs-oc-erchef", + "chef/automate-cs-ocid", "chef/automate-cs-nginx", "chef/automate-workflow-server", "chef/automate-workflow-nginx", @@ -178,7 +179,8 @@ "chef/automate-cs-bookshelf", "chef/automate-cs-oc-bifrost", "chef/automate-cs-oc-erchef", - "chef/automate-cs-nginx" + "chef/automate-cs-nginx", + "chef/automate-cs-ocid" ] }, {