// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.35.2
// 	protoc        v4.25.7
// source: google/cloud/apihub/v1/curate_service.proto

package apihubpb

import (
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	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)
)

// The state of the last execution of the curation.
type Curation_LastExecutionState int32

const (
	// Default unspecified state.
	Curation_LAST_EXECUTION_STATE_UNSPECIFIED Curation_LastExecutionState = 0
	// The last curation execution was successful.
	Curation_SUCCEEDED Curation_LastExecutionState = 1
	// The last curation execution failed.
	Curation_FAILED Curation_LastExecutionState = 2
)

// Enum value maps for Curation_LastExecutionState.
var (
	Curation_LastExecutionState_name = map[int32]string{
		0: "LAST_EXECUTION_STATE_UNSPECIFIED",
		1: "SUCCEEDED",
		2: "FAILED",
	}
	Curation_LastExecutionState_value = map[string]int32{
		"LAST_EXECUTION_STATE_UNSPECIFIED": 0,
		"SUCCEEDED":                        1,
		"FAILED":                           2,
	}
)

func (x Curation_LastExecutionState) Enum() *Curation_LastExecutionState {
	p := new(Curation_LastExecutionState)
	*p = x
	return p
}

func (x Curation_LastExecutionState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Curation_LastExecutionState) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_apihub_v1_curate_service_proto_enumTypes[0].Descriptor()
}

func (Curation_LastExecutionState) Type() protoreflect.EnumType {
	return &file_google_cloud_apihub_v1_curate_service_proto_enumTypes[0]
}

func (x Curation_LastExecutionState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Curation_LastExecutionState.Descriptor instead.
func (Curation_LastExecutionState) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP(), []int{6, 0}
}

// The error codes for failed executions.
type Curation_ErrorCode int32

const (
	// Default unspecified error code.
	Curation_ERROR_CODE_UNSPECIFIED Curation_ErrorCode = 0
	// The execution failed due to an internal error.
	Curation_INTERNAL_ERROR Curation_ErrorCode = 1
	// The curation is not authorized to trigger the endpoint uri.
	Curation_UNAUTHORIZED Curation_ErrorCode = 2
)

// Enum value maps for Curation_ErrorCode.
var (
	Curation_ErrorCode_name = map[int32]string{
		0: "ERROR_CODE_UNSPECIFIED",
		1: "INTERNAL_ERROR",
		2: "UNAUTHORIZED",
	}
	Curation_ErrorCode_value = map[string]int32{
		"ERROR_CODE_UNSPECIFIED": 0,
		"INTERNAL_ERROR":         1,
		"UNAUTHORIZED":           2,
	}
)

func (x Curation_ErrorCode) Enum() *Curation_ErrorCode {
	p := new(Curation_ErrorCode)
	*p = x
	return p
}

func (x Curation_ErrorCode) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Curation_ErrorCode) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_apihub_v1_curate_service_proto_enumTypes[1].Descriptor()
}

func (Curation_ErrorCode) Type() protoreflect.EnumType {
	return &file_google_cloud_apihub_v1_curate_service_proto_enumTypes[1]
}

func (x Curation_ErrorCode) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Curation_ErrorCode.Descriptor instead.
func (Curation_ErrorCode) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP(), []int{6, 1}
}

// The [CreateCuration][ApiHub.CreateCuration] method's request.
type CreateCurationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The parent resource for the curation resource.
	// Format: `projects/{project}/locations/{location}`
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Optional. The ID to use for the curation resource, which will become the
	// final component of the curations's resource name. This field is optional.
	//
	// * If provided, the same will be used. The service will throw an error if
	// the specified ID is already used by another curation resource in the API
	// hub.
	// * If not provided, a system generated ID will be used.
	//
	// This value should be 4-500 characters, and valid characters
	// are /[a-z][A-Z][0-9]-_/.
	CurationId string `protobuf:"bytes,2,opt,name=curation_id,json=curationId,proto3" json:"curation_id,omitempty"`
	// Required. The curation resource to create.
	Curation *Curation `protobuf:"bytes,3,opt,name=curation,proto3" json:"curation,omitempty"`
}

func (x *CreateCurationRequest) Reset() {
	*x = CreateCurationRequest{}
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CreateCurationRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateCurationRequest) ProtoMessage() {}

func (x *CreateCurationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateCurationRequest.ProtoReflect.Descriptor instead.
func (*CreateCurationRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP(), []int{0}
}

func (x *CreateCurationRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *CreateCurationRequest) GetCurationId() string {
	if x != nil {
		return x.CurationId
	}
	return ""
}

func (x *CreateCurationRequest) GetCuration() *Curation {
	if x != nil {
		return x.Curation
	}
	return nil
}

// The [GetCuration][ApiHub.GetCuration] method's request.
type GetCurationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The name of the curation resource to retrieve.
	// Format: `projects/{project}/locations/{location}/curations/{curation}`
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *GetCurationRequest) Reset() {
	*x = GetCurationRequest{}
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetCurationRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetCurationRequest) ProtoMessage() {}

func (x *GetCurationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetCurationRequest.ProtoReflect.Descriptor instead.
func (*GetCurationRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP(), []int{1}
}

func (x *GetCurationRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// The [UpdateCuration][ApiHub.UpdateCuration] method's request.
type UpdateCurationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The curation resource to update.
	//
	// The curation resource's `name` field is used to identify the curation
	// resource to update.
	// Format: `projects/{project}/locations/{location}/curations/{curation}`
	Curation *Curation `protobuf:"bytes,1,opt,name=curation,proto3" json:"curation,omitempty"`
	// Optional. The list of fields to update.
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
}

func (x *UpdateCurationRequest) Reset() {
	*x = UpdateCurationRequest{}
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateCurationRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateCurationRequest) ProtoMessage() {}

func (x *UpdateCurationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateCurationRequest.ProtoReflect.Descriptor instead.
func (*UpdateCurationRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP(), []int{2}
}

func (x *UpdateCurationRequest) GetCuration() *Curation {
	if x != nil {
		return x.Curation
	}
	return nil
}

func (x *UpdateCurationRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.UpdateMask
	}
	return nil
}

// The [DeleteCuration][ApiHub.DeleteCuration] method's request.
type DeleteCurationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The name of the curation resource to delete.
	// Format: `projects/{project}/locations/{location}/curations/{curation}`
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteCurationRequest) Reset() {
	*x = DeleteCurationRequest{}
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteCurationRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteCurationRequest) ProtoMessage() {}

func (x *DeleteCurationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteCurationRequest.ProtoReflect.Descriptor instead.
func (*DeleteCurationRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP(), []int{3}
}

func (x *DeleteCurationRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// The [ListCurations][ApiHub.ListCurations] method's request.
type ListCurationsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The parent, which owns this collection of curation resources.
	// Format: `projects/{project}/locations/{location}`
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Optional. An expression that filters the list of curation resources.
	//
	// A filter expression consists of a field name, a comparison
	// operator, and a value for filtering. The value must be a string. The
	// comparison operator must be one of: `<`, `>`, `:` or `=`. Filters are case
	// insensitive.
	//
	// The following fields in the `curation resource` are eligible for filtering:
	//
	//   - `create_time` - The time at which the curation was created.
	//     The value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339]
	//     format. Allowed comparison operators: `>` and `<`.
	//   - `display_name` - The display name of the curation. Allowed
	//     comparison operators: `=`.
	//   - `state` - The state of the curation. Allowed comparison operators: `=`.
	//
	// Expressions are combined with either `AND` logic operator or `OR` logical
	// operator but not both of them together i.e. only one of the `AND` or `OR`
	// operator can be used throughout the filter string and both the operators
	// cannot be used together. No other logical operators are supported. At most
	// three filter fields are allowed in the filter string and if provided
	// more than that then `INVALID_ARGUMENT` error is returned by the API.
	//
	// Here are a few examples:
	//
	//   - `create_time < \"2021-08-15T14:50:00Z\" AND create_time >
	//     \"2021-08-10T12:00:00Z\"` -
	//     The curation resource was created before _2021-08-15 14:50:00 UTC_ and
	//     after _2021-08-10 12:00:00 UTC_.
	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
	// Optional. The maximum number of curation resources to return. The service
	// may return fewer than this value. If unspecified, at most 50 curations will
	// be returned. The maximum value is 1000; values above 1000 will be coerced
	// to 1000.
	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Optional. A page token, received from a previous `ListCurations` call.
	// Provide this to retrieve the subsequent page.
	//
	// When paginating, all other parameters (except page_size) provided to
	// `ListCurations` must match the call that provided the page token.
	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
}

func (x *ListCurationsRequest) Reset() {
	*x = ListCurationsRequest{}
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListCurationsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListCurationsRequest) ProtoMessage() {}

func (x *ListCurationsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListCurationsRequest.ProtoReflect.Descriptor instead.
func (*ListCurationsRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP(), []int{4}
}

func (x *ListCurationsRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *ListCurationsRequest) GetFilter() string {
	if x != nil {
		return x.Filter
	}
	return ""
}

func (x *ListCurationsRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListCurationsRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

// The [ListCurations][ApiHub.ListCurations] method's response.
type ListCurationsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The curation resources present in the API hub.
	Curations []*Curation `protobuf:"bytes,1,rep,name=curations,proto3" json:"curations,omitempty"`
	// A token, which can be sent as `page_token` to retrieve the next page.
	// If this field is omitted, there are no subsequent pages.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
}

func (x *ListCurationsResponse) Reset() {
	*x = ListCurationsResponse{}
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListCurationsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListCurationsResponse) ProtoMessage() {}

func (x *ListCurationsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListCurationsResponse.ProtoReflect.Descriptor instead.
func (*ListCurationsResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP(), []int{5}
}

func (x *ListCurationsResponse) GetCurations() []*Curation {
	if x != nil {
		return x.Curations
	}
	return nil
}

func (x *ListCurationsResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

// A curation resource in the API Hub.
type Curation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Identifier. The name of the curation.
	//
	// Format:
	// `projects/{project}/locations/{location}/curations/{curation}`
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Required. The display name of the curation.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Optional. The description of the curation.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// Required. The endpoint to be triggered for curation.
	Endpoint *Endpoint `protobuf:"bytes,4,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	// Output only. The plugin instances and associated actions that are using the
	// curation. Note: A particular curation could be used by multiple plugin
	// instances or multiple actions in a plugin instance.
	PluginInstanceActions []*Curation_PluginInstanceActionID `protobuf:"bytes,5,rep,name=plugin_instance_actions,json=pluginInstanceActions,proto3" json:"plugin_instance_actions,omitempty"`
	// Output only. The last execution state of the curation.
	LastExecutionState Curation_LastExecutionState `protobuf:"varint,6,opt,name=last_execution_state,json=lastExecutionState,proto3,enum=google.cloud.apihub.v1.Curation_LastExecutionState" json:"last_execution_state,omitempty"`
	// Output only. The error code of the last execution of the curation. The
	// error code is populated only when the last execution state is failed.
	LastExecutionErrorCode Curation_ErrorCode `protobuf:"varint,7,opt,name=last_execution_error_code,json=lastExecutionErrorCode,proto3,enum=google.cloud.apihub.v1.Curation_ErrorCode" json:"last_execution_error_code,omitempty"`
	// Output only. Error message describing the failure, if any, during the last
	// execution of the curation.
	LastExecutionErrorMessage string `protobuf:"bytes,8,opt,name=last_execution_error_message,json=lastExecutionErrorMessage,proto3" json:"last_execution_error_message,omitempty"`
	// Output only. The time at which the curation was created.
	CreateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// Output only. The time at which the curation was last updated.
	UpdateTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
}

func (x *Curation) Reset() {
	*x = Curation{}
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Curation) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Curation) ProtoMessage() {}

func (x *Curation) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Curation.ProtoReflect.Descriptor instead.
func (*Curation) Descriptor() ([]byte, []int) {
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP(), []int{6}
}

func (x *Curation) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Curation) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *Curation) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *Curation) GetEndpoint() *Endpoint {
	if x != nil {
		return x.Endpoint
	}
	return nil
}

func (x *Curation) GetPluginInstanceActions() []*Curation_PluginInstanceActionID {
	if x != nil {
		return x.PluginInstanceActions
	}
	return nil
}

func (x *Curation) GetLastExecutionState() Curation_LastExecutionState {
	if x != nil {
		return x.LastExecutionState
	}
	return Curation_LAST_EXECUTION_STATE_UNSPECIFIED
}

func (x *Curation) GetLastExecutionErrorCode() Curation_ErrorCode {
	if x != nil {
		return x.LastExecutionErrorCode
	}
	return Curation_ERROR_CODE_UNSPECIFIED
}

func (x *Curation) GetLastExecutionErrorMessage() string {
	if x != nil {
		return x.LastExecutionErrorMessage
	}
	return ""
}

func (x *Curation) GetCreateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CreateTime
	}
	return nil
}

func (x *Curation) GetUpdateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdateTime
	}
	return nil
}

// The endpoint to be triggered for curation.
// The endpoint will be invoked with a request payload containing
// [ApiMetadata][google.cloud.apihub.v1.ApiHub.ApiMetadata].
// Response should contain curated data in the form of
// [ApiMetadata][google.cloud.apihub.v1.ApiHub.ApiMetadata].
type Endpoint struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The details of the endpoint to be triggered for curation.
	//
	// Types that are assignable to EndpointDetails:
	//
	//	*Endpoint_ApplicationIntegrationEndpointDetails
	EndpointDetails isEndpoint_EndpointDetails `protobuf_oneof:"endpoint_details"`
}

func (x *Endpoint) Reset() {
	*x = Endpoint{}
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Endpoint) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Endpoint) ProtoMessage() {}

func (x *Endpoint) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Endpoint.ProtoReflect.Descriptor instead.
func (*Endpoint) Descriptor() ([]byte, []int) {
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP(), []int{7}
}

func (m *Endpoint) GetEndpointDetails() isEndpoint_EndpointDetails {
	if m != nil {
		return m.EndpointDetails
	}
	return nil
}

func (x *Endpoint) GetApplicationIntegrationEndpointDetails() *ApplicationIntegrationEndpointDetails {
	if x, ok := x.GetEndpointDetails().(*Endpoint_ApplicationIntegrationEndpointDetails); ok {
		return x.ApplicationIntegrationEndpointDetails
	}
	return nil
}

type isEndpoint_EndpointDetails interface {
	isEndpoint_EndpointDetails()
}

type Endpoint_ApplicationIntegrationEndpointDetails struct {
	// Required. The details of the Application Integration endpoint to be
	// triggered for curation.
	ApplicationIntegrationEndpointDetails *ApplicationIntegrationEndpointDetails `protobuf:"bytes,1,opt,name=application_integration_endpoint_details,json=applicationIntegrationEndpointDetails,proto3,oneof"`
}

func (*Endpoint_ApplicationIntegrationEndpointDetails) isEndpoint_EndpointDetails() {}

// The details of the Application Integration endpoint to be triggered for
// curation.
type ApplicationIntegrationEndpointDetails struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The endpoint URI should be a valid REST URI for triggering an
	// Application Integration. Format:
	// `https://integrations.googleapis.com/v1/{name=projects/*/locations/*/integrations/*}:execute`
	// or
	// `https://{location}-integrations.googleapis.com/v1/{name=projects/*/locations/*/integrations/*}:execute`
	Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
	// Required. The API trigger ID of the Application Integration workflow.
	TriggerId string `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"`
}

func (x *ApplicationIntegrationEndpointDetails) Reset() {
	*x = ApplicationIntegrationEndpointDetails{}
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ApplicationIntegrationEndpointDetails) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ApplicationIntegrationEndpointDetails) ProtoMessage() {}

func (x *ApplicationIntegrationEndpointDetails) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ApplicationIntegrationEndpointDetails.ProtoReflect.Descriptor instead.
func (*ApplicationIntegrationEndpointDetails) Descriptor() ([]byte, []int) {
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP(), []int{8}
}

func (x *ApplicationIntegrationEndpointDetails) GetUri() string {
	if x != nil {
		return x.Uri
	}
	return ""
}

func (x *ApplicationIntegrationEndpointDetails) GetTriggerId() string {
	if x != nil {
		return x.TriggerId
	}
	return ""
}

// The plugin instance and associated action that is using the curation.
type Curation_PluginInstanceActionID struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Output only. Plugin instance that is using the curation.
	// Format is
	// `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}`
	PluginInstance string `protobuf:"bytes,1,opt,name=plugin_instance,json=pluginInstance,proto3" json:"plugin_instance,omitempty"`
	// Output only. The action ID that is using the curation.
	// This should map to one of the action IDs specified
	// in action configs in the plugin.
	ActionId string `protobuf:"bytes,2,opt,name=action_id,json=actionId,proto3" json:"action_id,omitempty"`
}

func (x *Curation_PluginInstanceActionID) Reset() {
	*x = Curation_PluginInstanceActionID{}
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Curation_PluginInstanceActionID) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Curation_PluginInstanceActionID) ProtoMessage() {}

func (x *Curation_PluginInstanceActionID) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_apihub_v1_curate_service_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Curation_PluginInstanceActionID.ProtoReflect.Descriptor instead.
func (*Curation_PluginInstanceActionID) Descriptor() ([]byte, []int) {
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP(), []int{6, 0}
}

func (x *Curation_PluginInstanceActionID) GetPluginInstance() string {
	if x != nil {
		return x.PluginInstance
	}
	return ""
}

func (x *Curation_PluginInstanceActionID) GetActionId() string {
	if x != nil {
		return x.ActionId
	}
	return ""
}

var File_google_cloud_apihub_v1_curate_service_proto protoreflect.FileDescriptor

var file_google_cloud_apihub_v1_curate_service_proto_rawDesc = []byte{
	0x0a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61,
	0x70, 0x69, 0x68, 0x75, 0x62, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x75, 0x72, 0x61, 0x74, 0x65, 0x5f,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68,
	0x75, 0x62, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62,
	0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73,
	0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc0, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x12, 0x1e, 0x61, 0x70, 0x69, 0x68,
	0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
	0x6d, 0x2f, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65,
	0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x08, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x12, 0x47,
	0x65, 0x74, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9c, 0x01,
	0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x08, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01,
	0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x53, 0x0a, 0x15,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x61, 0x70, 0x69,
	0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
	0x6f, 0x6d, 0x2f, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x22, 0xb9, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa,
	0x41, 0x20, 0x12, 0x1e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
	0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f,
	0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
	0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67,
	0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7f, 0x0a,
	0x15, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70,
	0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xff,
	0x08, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b,
	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x45,
	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x65, 0x6e,
	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x74, 0x0a, 0x17, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e,
	0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
	0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x6a, 0x0a, 0x14,
	0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x73,
	0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42,
	0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x6a, 0x0a, 0x19, 0x6c, 0x61, 0x73, 0x74,
	0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72,
	0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x16, 0x6c, 0x61,
	0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x43, 0x6f, 0x64, 0x65, 0x12, 0x44, 0x0a, 0x1c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65,
	0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x19, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03,
	0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b,
	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x91,
	0x01, 0x0a, 0x16, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x55, 0x0a, 0x0f, 0x70, 0x6c, 0x75,
	0x67, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x61, 0x70, 0x69, 0x68,
	0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
	0x6d, 0x2f, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
	0x52, 0x0e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
	0x12, 0x20, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x64, 0x22, 0x55, 0x0a, 0x12, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x41, 0x53, 0x54,
	0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45,
	0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d,
	0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a,
	0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x22, 0x4d, 0x0a, 0x09, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f,
	0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
	0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45,
	0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x41, 0x55, 0x54, 0x48,
	0x4f, 0x52, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x02, 0x3a, 0x76, 0xea, 0x41, 0x73, 0x0a, 0x1e, 0x61,
	0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x70,
	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
	0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x2f, 0x7b, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2a, 0x09, 0x63, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0x08, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x22, 0xbe, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x9d, 0x01,
	0x0a, 0x28, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e,
	0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x25, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e,
	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x12, 0x0a,
	0x10, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x22, 0x62, 0x0a, 0x25, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72,
	0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x75, 0x72,
	0x69, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67,
	0x67, 0x65, 0x72, 0x49, 0x64, 0x32, 0xc4, 0x07, 0x0a, 0x0c, 0x41, 0x70, 0x69, 0x48, 0x75, 0x62,
	0x43, 0x75, 0x72, 0x61, 0x74, 0x65, 0x12, 0xc0, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5d, 0xda, 0x41, 0x1b, 0x70,
	0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x63,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39,
	0x3a, 0x08, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f,
	0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
	0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f,
	0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x99, 0x01, 0x0a, 0x0b, 0x47, 0x65,
	0x74, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3c, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d,
	0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
	0x69, 0x73, 0x74, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65,
	0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x12, 0xc2, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5f, 0xda, 0x41, 0x14, 0x63, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73,
	0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x08, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x32, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a,
	0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x95, 0x01, 0x0a, 0x0e, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x43, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x68,
	0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x75, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
	0x70, 0x74, 0x79, 0x22, 0x3c, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93,
	0x02, 0x2f, 0x2a, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72,
	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a,
	0x7d, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74,
	0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xb4, 0x01, 0x0a,
	0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
	0x64, 0x2e, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x42, 0x12, 0x43, 0x75, 0x72,
	0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
	0x01, 0x5a, 0x32, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x2f, 0x61, 0x70,
	0x69, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x68, 0x75, 0x62, 0x70, 0x62, 0x3b, 0x61, 0x70, 0x69,
	0x68, 0x75, 0x62, 0x70, 0x62, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x70, 0x69, 0x48, 0x75, 0x62, 0x2e, 0x56, 0x31, 0xca, 0x02,
	0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x70,
	0x69, 0x48, 0x75, 0x62, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x48, 0x75, 0x62, 0x3a,
	0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_google_cloud_apihub_v1_curate_service_proto_rawDescOnce sync.Once
	file_google_cloud_apihub_v1_curate_service_proto_rawDescData = file_google_cloud_apihub_v1_curate_service_proto_rawDesc
)

func file_google_cloud_apihub_v1_curate_service_proto_rawDescGZIP() []byte {
	file_google_cloud_apihub_v1_curate_service_proto_rawDescOnce.Do(func() {
		file_google_cloud_apihub_v1_curate_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apihub_v1_curate_service_proto_rawDescData)
	})
	return file_google_cloud_apihub_v1_curate_service_proto_rawDescData
}

var file_google_cloud_apihub_v1_curate_service_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_google_cloud_apihub_v1_curate_service_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_google_cloud_apihub_v1_curate_service_proto_goTypes = []any{
	(Curation_LastExecutionState)(0),              // 0: google.cloud.apihub.v1.Curation.LastExecutionState
	(Curation_ErrorCode)(0),                       // 1: google.cloud.apihub.v1.Curation.ErrorCode
	(*CreateCurationRequest)(nil),                 // 2: google.cloud.apihub.v1.CreateCurationRequest
	(*GetCurationRequest)(nil),                    // 3: google.cloud.apihub.v1.GetCurationRequest
	(*UpdateCurationRequest)(nil),                 // 4: google.cloud.apihub.v1.UpdateCurationRequest
	(*DeleteCurationRequest)(nil),                 // 5: google.cloud.apihub.v1.DeleteCurationRequest
	(*ListCurationsRequest)(nil),                  // 6: google.cloud.apihub.v1.ListCurationsRequest
	(*ListCurationsResponse)(nil),                 // 7: google.cloud.apihub.v1.ListCurationsResponse
	(*Curation)(nil),                              // 8: google.cloud.apihub.v1.Curation
	(*Endpoint)(nil),                              // 9: google.cloud.apihub.v1.Endpoint
	(*ApplicationIntegrationEndpointDetails)(nil), // 10: google.cloud.apihub.v1.ApplicationIntegrationEndpointDetails
	(*Curation_PluginInstanceActionID)(nil),       // 11: google.cloud.apihub.v1.Curation.PluginInstanceActionID
	(*fieldmaskpb.FieldMask)(nil),                 // 12: google.protobuf.FieldMask
	(*timestamppb.Timestamp)(nil),                 // 13: google.protobuf.Timestamp
	(*emptypb.Empty)(nil),                         // 14: google.protobuf.Empty
}
var file_google_cloud_apihub_v1_curate_service_proto_depIdxs = []int32{
	8,  // 0: google.cloud.apihub.v1.CreateCurationRequest.curation:type_name -> google.cloud.apihub.v1.Curation
	8,  // 1: google.cloud.apihub.v1.UpdateCurationRequest.curation:type_name -> google.cloud.apihub.v1.Curation
	12, // 2: google.cloud.apihub.v1.UpdateCurationRequest.update_mask:type_name -> google.protobuf.FieldMask
	8,  // 3: google.cloud.apihub.v1.ListCurationsResponse.curations:type_name -> google.cloud.apihub.v1.Curation
	9,  // 4: google.cloud.apihub.v1.Curation.endpoint:type_name -> google.cloud.apihub.v1.Endpoint
	11, // 5: google.cloud.apihub.v1.Curation.plugin_instance_actions:type_name -> google.cloud.apihub.v1.Curation.PluginInstanceActionID
	0,  // 6: google.cloud.apihub.v1.Curation.last_execution_state:type_name -> google.cloud.apihub.v1.Curation.LastExecutionState
	1,  // 7: google.cloud.apihub.v1.Curation.last_execution_error_code:type_name -> google.cloud.apihub.v1.Curation.ErrorCode
	13, // 8: google.cloud.apihub.v1.Curation.create_time:type_name -> google.protobuf.Timestamp
	13, // 9: google.cloud.apihub.v1.Curation.update_time:type_name -> google.protobuf.Timestamp
	10, // 10: google.cloud.apihub.v1.Endpoint.application_integration_endpoint_details:type_name -> google.cloud.apihub.v1.ApplicationIntegrationEndpointDetails
	2,  // 11: google.cloud.apihub.v1.ApiHubCurate.CreateCuration:input_type -> google.cloud.apihub.v1.CreateCurationRequest
	3,  // 12: google.cloud.apihub.v1.ApiHubCurate.GetCuration:input_type -> google.cloud.apihub.v1.GetCurationRequest
	6,  // 13: google.cloud.apihub.v1.ApiHubCurate.ListCurations:input_type -> google.cloud.apihub.v1.ListCurationsRequest
	4,  // 14: google.cloud.apihub.v1.ApiHubCurate.UpdateCuration:input_type -> google.cloud.apihub.v1.UpdateCurationRequest
	5,  // 15: google.cloud.apihub.v1.ApiHubCurate.DeleteCuration:input_type -> google.cloud.apihub.v1.DeleteCurationRequest
	8,  // 16: google.cloud.apihub.v1.ApiHubCurate.CreateCuration:output_type -> google.cloud.apihub.v1.Curation
	8,  // 17: google.cloud.apihub.v1.ApiHubCurate.GetCuration:output_type -> google.cloud.apihub.v1.Curation
	7,  // 18: google.cloud.apihub.v1.ApiHubCurate.ListCurations:output_type -> google.cloud.apihub.v1.ListCurationsResponse
	8,  // 19: google.cloud.apihub.v1.ApiHubCurate.UpdateCuration:output_type -> google.cloud.apihub.v1.Curation
	14, // 20: google.cloud.apihub.v1.ApiHubCurate.DeleteCuration:output_type -> google.protobuf.Empty
	16, // [16:21] is the sub-list for method output_type
	11, // [11:16] is the sub-list for method input_type
	11, // [11:11] is the sub-list for extension type_name
	11, // [11:11] is the sub-list for extension extendee
	0,  // [0:11] is the sub-list for field type_name
}

func init() { file_google_cloud_apihub_v1_curate_service_proto_init() }
func file_google_cloud_apihub_v1_curate_service_proto_init() {
	if File_google_cloud_apihub_v1_curate_service_proto != nil {
		return
	}
	file_google_cloud_apihub_v1_curate_service_proto_msgTypes[7].OneofWrappers = []any{
		(*Endpoint_ApplicationIntegrationEndpointDetails)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_google_cloud_apihub_v1_curate_service_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   10,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_google_cloud_apihub_v1_curate_service_proto_goTypes,
		DependencyIndexes: file_google_cloud_apihub_v1_curate_service_proto_depIdxs,
		EnumInfos:         file_google_cloud_apihub_v1_curate_service_proto_enumTypes,
		MessageInfos:      file_google_cloud_apihub_v1_curate_service_proto_msgTypes,
	}.Build()
	File_google_cloud_apihub_v1_curate_service_proto = out.File
	file_google_cloud_apihub_v1_curate_service_proto_rawDesc = nil
	file_google_cloud_apihub_v1_curate_service_proto_goTypes = nil
	file_google_cloud_apihub_v1_curate_service_proto_depIdxs = nil
}
