// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v3.21.12
// source: kodex/providers/v1/provider_hub.proto

package providersv1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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)
)

// ProviderOperationRiskLevel classifies write-operation risk.
type ProviderOperationRiskLevel int32

const (
	ProviderOperationRiskLevel_PROVIDER_OPERATION_RISK_LEVEL_UNSPECIFIED ProviderOperationRiskLevel = 0
	ProviderOperationRiskLevel_PROVIDER_OPERATION_RISK_LEVEL_LOW         ProviderOperationRiskLevel = 1
	ProviderOperationRiskLevel_PROVIDER_OPERATION_RISK_LEVEL_MEDIUM      ProviderOperationRiskLevel = 2
	ProviderOperationRiskLevel_PROVIDER_OPERATION_RISK_LEVEL_HIGH        ProviderOperationRiskLevel = 3
	ProviderOperationRiskLevel_PROVIDER_OPERATION_RISK_LEVEL_CRITICAL    ProviderOperationRiskLevel = 4
)

// Enum value maps for ProviderOperationRiskLevel.
var (
	ProviderOperationRiskLevel_name = map[int32]string{
		0: "PROVIDER_OPERATION_RISK_LEVEL_UNSPECIFIED",
		1: "PROVIDER_OPERATION_RISK_LEVEL_LOW",
		2: "PROVIDER_OPERATION_RISK_LEVEL_MEDIUM",
		3: "PROVIDER_OPERATION_RISK_LEVEL_HIGH",
		4: "PROVIDER_OPERATION_RISK_LEVEL_CRITICAL",
	}
	ProviderOperationRiskLevel_value = map[string]int32{
		"PROVIDER_OPERATION_RISK_LEVEL_UNSPECIFIED": 0,
		"PROVIDER_OPERATION_RISK_LEVEL_LOW":         1,
		"PROVIDER_OPERATION_RISK_LEVEL_MEDIUM":      2,
		"PROVIDER_OPERATION_RISK_LEVEL_HIGH":        3,
		"PROVIDER_OPERATION_RISK_LEVEL_CRITICAL":    4,
	}
)

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

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

func (ProviderOperationRiskLevel) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[0].Descriptor()
}

func (ProviderOperationRiskLevel) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[0]
}

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

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

// WorkItemKind classifies provider-native work items.
type WorkItemKind int32

const (
	WorkItemKind_WORK_ITEM_KIND_UNSPECIFIED   WorkItemKind = 0
	WorkItemKind_WORK_ITEM_KIND_ISSUE         WorkItemKind = 1
	WorkItemKind_WORK_ITEM_KIND_PULL_REQUEST  WorkItemKind = 2
	WorkItemKind_WORK_ITEM_KIND_MERGE_REQUEST WorkItemKind = 3
)

// Enum value maps for WorkItemKind.
var (
	WorkItemKind_name = map[int32]string{
		0: "WORK_ITEM_KIND_UNSPECIFIED",
		1: "WORK_ITEM_KIND_ISSUE",
		2: "WORK_ITEM_KIND_PULL_REQUEST",
		3: "WORK_ITEM_KIND_MERGE_REQUEST",
	}
	WorkItemKind_value = map[string]int32{
		"WORK_ITEM_KIND_UNSPECIFIED":   0,
		"WORK_ITEM_KIND_ISSUE":         1,
		"WORK_ITEM_KIND_PULL_REQUEST":  2,
		"WORK_ITEM_KIND_MERGE_REQUEST": 3,
	}
)

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

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

func (WorkItemKind) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[1].Descriptor()
}

func (WorkItemKind) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[1]
}

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

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

// WebhookProcessingStatus is the stored raw webhook processing status.
type WebhookProcessingStatus int32

const (
	WebhookProcessingStatus_WEBHOOK_PROCESSING_STATUS_UNSPECIFIED WebhookProcessingStatus = 0
	WebhookProcessingStatus_WEBHOOK_PROCESSING_STATUS_PENDING     WebhookProcessingStatus = 1
	WebhookProcessingStatus_WEBHOOK_PROCESSING_STATUS_PROCESSED   WebhookProcessingStatus = 2
	WebhookProcessingStatus_WEBHOOK_PROCESSING_STATUS_FAILED      WebhookProcessingStatus = 3
	WebhookProcessingStatus_WEBHOOK_PROCESSING_STATUS_IGNORED     WebhookProcessingStatus = 4
)

// Enum value maps for WebhookProcessingStatus.
var (
	WebhookProcessingStatus_name = map[int32]string{
		0: "WEBHOOK_PROCESSING_STATUS_UNSPECIFIED",
		1: "WEBHOOK_PROCESSING_STATUS_PENDING",
		2: "WEBHOOK_PROCESSING_STATUS_PROCESSED",
		3: "WEBHOOK_PROCESSING_STATUS_FAILED",
		4: "WEBHOOK_PROCESSING_STATUS_IGNORED",
	}
	WebhookProcessingStatus_value = map[string]int32{
		"WEBHOOK_PROCESSING_STATUS_UNSPECIFIED": 0,
		"WEBHOOK_PROCESSING_STATUS_PENDING":     1,
		"WEBHOOK_PROCESSING_STATUS_PROCESSED":   2,
		"WEBHOOK_PROCESSING_STATUS_FAILED":      3,
		"WEBHOOK_PROCESSING_STATUS_IGNORED":     4,
	}
)

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

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

func (WebhookProcessingStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[2].Descriptor()
}

func (WebhookProcessingStatus) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[2]
}

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

// Deprecated: Use WebhookProcessingStatus.Descriptor instead.
func (WebhookProcessingStatus) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{2}
}

// WorkItemWatermarkStatus is the parsed watermark status.
type WorkItemWatermarkStatus int32

const (
	WorkItemWatermarkStatus_WORK_ITEM_WATERMARK_STATUS_UNSPECIFIED WorkItemWatermarkStatus = 0
	WorkItemWatermarkStatus_WORK_ITEM_WATERMARK_STATUS_MISSING     WorkItemWatermarkStatus = 1
	WorkItemWatermarkStatus_WORK_ITEM_WATERMARK_STATUS_VALID       WorkItemWatermarkStatus = 2
	WorkItemWatermarkStatus_WORK_ITEM_WATERMARK_STATUS_INVALID     WorkItemWatermarkStatus = 3
	WorkItemWatermarkStatus_WORK_ITEM_WATERMARK_STATUS_STALE       WorkItemWatermarkStatus = 4
)

// Enum value maps for WorkItemWatermarkStatus.
var (
	WorkItemWatermarkStatus_name = map[int32]string{
		0: "WORK_ITEM_WATERMARK_STATUS_UNSPECIFIED",
		1: "WORK_ITEM_WATERMARK_STATUS_MISSING",
		2: "WORK_ITEM_WATERMARK_STATUS_VALID",
		3: "WORK_ITEM_WATERMARK_STATUS_INVALID",
		4: "WORK_ITEM_WATERMARK_STATUS_STALE",
	}
	WorkItemWatermarkStatus_value = map[string]int32{
		"WORK_ITEM_WATERMARK_STATUS_UNSPECIFIED": 0,
		"WORK_ITEM_WATERMARK_STATUS_MISSING":     1,
		"WORK_ITEM_WATERMARK_STATUS_VALID":       2,
		"WORK_ITEM_WATERMARK_STATUS_INVALID":     3,
		"WORK_ITEM_WATERMARK_STATUS_STALE":       4,
	}
)

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

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

func (WorkItemWatermarkStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[3].Descriptor()
}

func (WorkItemWatermarkStatus) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[3]
}

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

// Deprecated: Use WorkItemWatermarkStatus.Descriptor instead.
func (WorkItemWatermarkStatus) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{3}
}

// WorkItemDriftStatus is the projection freshness state.
type WorkItemDriftStatus int32

const (
	WorkItemDriftStatus_WORK_ITEM_DRIFT_STATUS_UNSPECIFIED WorkItemDriftStatus = 0
	WorkItemDriftStatus_WORK_ITEM_DRIFT_STATUS_FRESH       WorkItemDriftStatus = 1
	WorkItemDriftStatus_WORK_ITEM_DRIFT_STATUS_SUSPECTED   WorkItemDriftStatus = 2
	WorkItemDriftStatus_WORK_ITEM_DRIFT_STATUS_STALE       WorkItemDriftStatus = 3
	WorkItemDriftStatus_WORK_ITEM_DRIFT_STATUS_FAILED      WorkItemDriftStatus = 4
)

// Enum value maps for WorkItemDriftStatus.
var (
	WorkItemDriftStatus_name = map[int32]string{
		0: "WORK_ITEM_DRIFT_STATUS_UNSPECIFIED",
		1: "WORK_ITEM_DRIFT_STATUS_FRESH",
		2: "WORK_ITEM_DRIFT_STATUS_SUSPECTED",
		3: "WORK_ITEM_DRIFT_STATUS_STALE",
		4: "WORK_ITEM_DRIFT_STATUS_FAILED",
	}
	WorkItemDriftStatus_value = map[string]int32{
		"WORK_ITEM_DRIFT_STATUS_UNSPECIFIED": 0,
		"WORK_ITEM_DRIFT_STATUS_FRESH":       1,
		"WORK_ITEM_DRIFT_STATUS_SUSPECTED":   2,
		"WORK_ITEM_DRIFT_STATUS_STALE":       3,
		"WORK_ITEM_DRIFT_STATUS_FAILED":      4,
	}
)

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

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

func (WorkItemDriftStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[4].Descriptor()
}

func (WorkItemDriftStatus) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[4]
}

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

// Deprecated: Use WorkItemDriftStatus.Descriptor instead.
func (WorkItemDriftStatus) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{4}
}

// CommentKind classifies provider-native comment-like records.
type CommentKind int32

const (
	CommentKind_COMMENT_KIND_UNSPECIFIED CommentKind = 0
	CommentKind_COMMENT_KIND_COMMENT     CommentKind = 1
	CommentKind_COMMENT_KIND_REVIEW      CommentKind = 2
	CommentKind_COMMENT_KIND_MENTION     CommentKind = 3
	CommentKind_COMMENT_KIND_SYSTEM      CommentKind = 4
)

// Enum value maps for CommentKind.
var (
	CommentKind_name = map[int32]string{
		0: "COMMENT_KIND_UNSPECIFIED",
		1: "COMMENT_KIND_COMMENT",
		2: "COMMENT_KIND_REVIEW",
		3: "COMMENT_KIND_MENTION",
		4: "COMMENT_KIND_SYSTEM",
	}
	CommentKind_value = map[string]int32{
		"COMMENT_KIND_UNSPECIFIED": 0,
		"COMMENT_KIND_COMMENT":     1,
		"COMMENT_KIND_REVIEW":      2,
		"COMMENT_KIND_MENTION":     3,
		"COMMENT_KIND_SYSTEM":      4,
	}
)

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

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

func (CommentKind) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[5].Descriptor()
}

func (CommentKind) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[5]
}

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

// Deprecated: Use CommentKind.Descriptor instead.
func (CommentKind) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{5}
}

// ReviewState classifies provider-native review decisions.
type ReviewState int32

const (
	ReviewState_REVIEW_STATE_UNSPECIFIED       ReviewState = 0
	ReviewState_REVIEW_STATE_APPROVED          ReviewState = 1
	ReviewState_REVIEW_STATE_CHANGES_REQUESTED ReviewState = 2
	ReviewState_REVIEW_STATE_COMMENTED         ReviewState = 3
	ReviewState_REVIEW_STATE_DISMISSED         ReviewState = 4
	ReviewState_REVIEW_STATE_PENDING           ReviewState = 5
)

// Enum value maps for ReviewState.
var (
	ReviewState_name = map[int32]string{
		0: "REVIEW_STATE_UNSPECIFIED",
		1: "REVIEW_STATE_APPROVED",
		2: "REVIEW_STATE_CHANGES_REQUESTED",
		3: "REVIEW_STATE_COMMENTED",
		4: "REVIEW_STATE_DISMISSED",
		5: "REVIEW_STATE_PENDING",
	}
	ReviewState_value = map[string]int32{
		"REVIEW_STATE_UNSPECIFIED":       0,
		"REVIEW_STATE_APPROVED":          1,
		"REVIEW_STATE_CHANGES_REQUESTED": 2,
		"REVIEW_STATE_COMMENTED":         3,
		"REVIEW_STATE_DISMISSED":         4,
		"REVIEW_STATE_PENDING":           5,
	}
)

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

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

func (ReviewState) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[6].Descriptor()
}

func (ReviewState) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[6]
}

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

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

// RelationshipConfidence describes how reliable a relationship is.
type RelationshipConfidence int32

const (
	RelationshipConfidence_RELATIONSHIP_CONFIDENCE_UNSPECIFIED RelationshipConfidence = 0
	RelationshipConfidence_RELATIONSHIP_CONFIDENCE_CONFIRMED   RelationshipConfidence = 1
	RelationshipConfidence_RELATIONSHIP_CONFIDENCE_INFERRED    RelationshipConfidence = 2
	RelationshipConfidence_RELATIONSHIP_CONFIDENCE_SUSPECTED   RelationshipConfidence = 3
)

// Enum value maps for RelationshipConfidence.
var (
	RelationshipConfidence_name = map[int32]string{
		0: "RELATIONSHIP_CONFIDENCE_UNSPECIFIED",
		1: "RELATIONSHIP_CONFIDENCE_CONFIRMED",
		2: "RELATIONSHIP_CONFIDENCE_INFERRED",
		3: "RELATIONSHIP_CONFIDENCE_SUSPECTED",
	}
	RelationshipConfidence_value = map[string]int32{
		"RELATIONSHIP_CONFIDENCE_UNSPECIFIED": 0,
		"RELATIONSHIP_CONFIDENCE_CONFIRMED":   1,
		"RELATIONSHIP_CONFIDENCE_INFERRED":    2,
		"RELATIONSHIP_CONFIDENCE_SUSPECTED":   3,
	}
)

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

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

func (RelationshipConfidence) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[7].Descriptor()
}

func (RelationshipConfidence) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[7]
}

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

// Deprecated: Use RelationshipConfidence.Descriptor instead.
func (RelationshipConfidence) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{7}
}

// RelationshipSource classifies where a relationship came from.
type RelationshipSource int32

const (
	RelationshipSource_RELATIONSHIP_SOURCE_UNSPECIFIED    RelationshipSource = 0
	RelationshipSource_RELATIONSHIP_SOURCE_PROVIDER       RelationshipSource = 1
	RelationshipSource_RELATIONSHIP_SOURCE_WATERMARK      RelationshipSource = 2
	RelationshipSource_RELATIONSHIP_SOURCE_COMMENT        RelationshipSource = 3
	RelationshipSource_RELATIONSHIP_SOURCE_MANUAL         RelationshipSource = 4
	RelationshipSource_RELATIONSHIP_SOURCE_RECONCILIATION RelationshipSource = 5
)

// Enum value maps for RelationshipSource.
var (
	RelationshipSource_name = map[int32]string{
		0: "RELATIONSHIP_SOURCE_UNSPECIFIED",
		1: "RELATIONSHIP_SOURCE_PROVIDER",
		2: "RELATIONSHIP_SOURCE_WATERMARK",
		3: "RELATIONSHIP_SOURCE_COMMENT",
		4: "RELATIONSHIP_SOURCE_MANUAL",
		5: "RELATIONSHIP_SOURCE_RECONCILIATION",
	}
	RelationshipSource_value = map[string]int32{
		"RELATIONSHIP_SOURCE_UNSPECIFIED":    0,
		"RELATIONSHIP_SOURCE_PROVIDER":       1,
		"RELATIONSHIP_SOURCE_WATERMARK":      2,
		"RELATIONSHIP_SOURCE_COMMENT":        3,
		"RELATIONSHIP_SOURCE_MANUAL":         4,
		"RELATIONSHIP_SOURCE_RECONCILIATION": 5,
	}
)

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

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

func (RelationshipSource) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[8].Descriptor()
}

func (RelationshipSource) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[8]
}

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

// Deprecated: Use RelationshipSource.Descriptor instead.
func (RelationshipSource) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{8}
}

// SyncCursorScopeType classifies reconciliation scope.
type SyncCursorScopeType int32

const (
	SyncCursorScopeType_SYNC_CURSOR_SCOPE_TYPE_UNSPECIFIED    SyncCursorScopeType = 0
	SyncCursorScopeType_SYNC_CURSOR_SCOPE_TYPE_REPOSITORY     SyncCursorScopeType = 1
	SyncCursorScopeType_SYNC_CURSOR_SCOPE_TYPE_ORGANIZATION   SyncCursorScopeType = 2
	SyncCursorScopeType_SYNC_CURSOR_SCOPE_TYPE_WORK_ITEM      SyncCursorScopeType = 3
	SyncCursorScopeType_SYNC_CURSOR_SCOPE_TYPE_PACKAGE_SOURCE SyncCursorScopeType = 4
)

// Enum value maps for SyncCursorScopeType.
var (
	SyncCursorScopeType_name = map[int32]string{
		0: "SYNC_CURSOR_SCOPE_TYPE_UNSPECIFIED",
		1: "SYNC_CURSOR_SCOPE_TYPE_REPOSITORY",
		2: "SYNC_CURSOR_SCOPE_TYPE_ORGANIZATION",
		3: "SYNC_CURSOR_SCOPE_TYPE_WORK_ITEM",
		4: "SYNC_CURSOR_SCOPE_TYPE_PACKAGE_SOURCE",
	}
	SyncCursorScopeType_value = map[string]int32{
		"SYNC_CURSOR_SCOPE_TYPE_UNSPECIFIED":    0,
		"SYNC_CURSOR_SCOPE_TYPE_REPOSITORY":     1,
		"SYNC_CURSOR_SCOPE_TYPE_ORGANIZATION":   2,
		"SYNC_CURSOR_SCOPE_TYPE_WORK_ITEM":      3,
		"SYNC_CURSOR_SCOPE_TYPE_PACKAGE_SOURCE": 4,
	}
)

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

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

func (SyncCursorScopeType) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[9].Descriptor()
}

func (SyncCursorScopeType) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[9]
}

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

// Deprecated: Use SyncCursorScopeType.Descriptor instead.
func (SyncCursorScopeType) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{9}
}

// SyncArtifactKind classifies artifacts reconciled by a cursor.
type SyncArtifactKind int32

const (
	SyncArtifactKind_SYNC_ARTIFACT_KIND_UNSPECIFIED   SyncArtifactKind = 0
	SyncArtifactKind_SYNC_ARTIFACT_KIND_ISSUE         SyncArtifactKind = 1
	SyncArtifactKind_SYNC_ARTIFACT_KIND_PULL_REQUEST  SyncArtifactKind = 2
	SyncArtifactKind_SYNC_ARTIFACT_KIND_MERGE_REQUEST SyncArtifactKind = 3
	SyncArtifactKind_SYNC_ARTIFACT_KIND_COMMENT       SyncArtifactKind = 4
	SyncArtifactKind_SYNC_ARTIFACT_KIND_RELATIONSHIP  SyncArtifactKind = 5
	SyncArtifactKind_SYNC_ARTIFACT_KIND_REPOSITORY    SyncArtifactKind = 6
)

// Enum value maps for SyncArtifactKind.
var (
	SyncArtifactKind_name = map[int32]string{
		0: "SYNC_ARTIFACT_KIND_UNSPECIFIED",
		1: "SYNC_ARTIFACT_KIND_ISSUE",
		2: "SYNC_ARTIFACT_KIND_PULL_REQUEST",
		3: "SYNC_ARTIFACT_KIND_MERGE_REQUEST",
		4: "SYNC_ARTIFACT_KIND_COMMENT",
		5: "SYNC_ARTIFACT_KIND_RELATIONSHIP",
		6: "SYNC_ARTIFACT_KIND_REPOSITORY",
	}
	SyncArtifactKind_value = map[string]int32{
		"SYNC_ARTIFACT_KIND_UNSPECIFIED":   0,
		"SYNC_ARTIFACT_KIND_ISSUE":         1,
		"SYNC_ARTIFACT_KIND_PULL_REQUEST":  2,
		"SYNC_ARTIFACT_KIND_MERGE_REQUEST": 3,
		"SYNC_ARTIFACT_KIND_COMMENT":       4,
		"SYNC_ARTIFACT_KIND_RELATIONSHIP":  5,
		"SYNC_ARTIFACT_KIND_REPOSITORY":    6,
	}
)

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

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

func (SyncArtifactKind) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[10].Descriptor()
}

func (SyncArtifactKind) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[10]
}

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

// Deprecated: Use SyncArtifactKind.Descriptor instead.
func (SyncArtifactKind) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{10}
}

// SyncCursorPriority classifies reconciliation urgency.
type SyncCursorPriority int32

const (
	SyncCursorPriority_SYNC_CURSOR_PRIORITY_UNSPECIFIED SyncCursorPriority = 0
	SyncCursorPriority_SYNC_CURSOR_PRIORITY_HOT         SyncCursorPriority = 1
	SyncCursorPriority_SYNC_CURSOR_PRIORITY_WARM        SyncCursorPriority = 2
	SyncCursorPriority_SYNC_CURSOR_PRIORITY_COLD        SyncCursorPriority = 3
)

// Enum value maps for SyncCursorPriority.
var (
	SyncCursorPriority_name = map[int32]string{
		0: "SYNC_CURSOR_PRIORITY_UNSPECIFIED",
		1: "SYNC_CURSOR_PRIORITY_HOT",
		2: "SYNC_CURSOR_PRIORITY_WARM",
		3: "SYNC_CURSOR_PRIORITY_COLD",
	}
	SyncCursorPriority_value = map[string]int32{
		"SYNC_CURSOR_PRIORITY_UNSPECIFIED": 0,
		"SYNC_CURSOR_PRIORITY_HOT":         1,
		"SYNC_CURSOR_PRIORITY_WARM":        2,
		"SYNC_CURSOR_PRIORITY_COLD":        3,
	}
)

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

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

func (SyncCursorPriority) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[11].Descriptor()
}

func (SyncCursorPriority) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[11]
}

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

// Deprecated: Use SyncCursorPriority.Descriptor instead.
func (SyncCursorPriority) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{11}
}

// ProviderAccountRuntimeStatus is the operational state of an external account at provider.
type ProviderAccountRuntimeStatus int32

const (
	ProviderAccountRuntimeStatus_PROVIDER_ACCOUNT_RUNTIME_STATUS_UNSPECIFIED              ProviderAccountRuntimeStatus = 0
	ProviderAccountRuntimeStatus_PROVIDER_ACCOUNT_RUNTIME_STATUS_ACTIVE                   ProviderAccountRuntimeStatus = 1
	ProviderAccountRuntimeStatus_PROVIDER_ACCOUNT_RUNTIME_STATUS_REAUTHORIZATION_REQUIRED ProviderAccountRuntimeStatus = 2
	ProviderAccountRuntimeStatus_PROVIDER_ACCOUNT_RUNTIME_STATUS_LIMITED                  ProviderAccountRuntimeStatus = 3
	ProviderAccountRuntimeStatus_PROVIDER_ACCOUNT_RUNTIME_STATUS_DISABLED                 ProviderAccountRuntimeStatus = 4
	ProviderAccountRuntimeStatus_PROVIDER_ACCOUNT_RUNTIME_STATUS_ERROR                    ProviderAccountRuntimeStatus = 5
)

// Enum value maps for ProviderAccountRuntimeStatus.
var (
	ProviderAccountRuntimeStatus_name = map[int32]string{
		0: "PROVIDER_ACCOUNT_RUNTIME_STATUS_UNSPECIFIED",
		1: "PROVIDER_ACCOUNT_RUNTIME_STATUS_ACTIVE",
		2: "PROVIDER_ACCOUNT_RUNTIME_STATUS_REAUTHORIZATION_REQUIRED",
		3: "PROVIDER_ACCOUNT_RUNTIME_STATUS_LIMITED",
		4: "PROVIDER_ACCOUNT_RUNTIME_STATUS_DISABLED",
		5: "PROVIDER_ACCOUNT_RUNTIME_STATUS_ERROR",
	}
	ProviderAccountRuntimeStatus_value = map[string]int32{
		"PROVIDER_ACCOUNT_RUNTIME_STATUS_UNSPECIFIED":              0,
		"PROVIDER_ACCOUNT_RUNTIME_STATUS_ACTIVE":                   1,
		"PROVIDER_ACCOUNT_RUNTIME_STATUS_REAUTHORIZATION_REQUIRED": 2,
		"PROVIDER_ACCOUNT_RUNTIME_STATUS_LIMITED":                  3,
		"PROVIDER_ACCOUNT_RUNTIME_STATUS_DISABLED":                 4,
		"PROVIDER_ACCOUNT_RUNTIME_STATUS_ERROR":                    5,
	}
)

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

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

func (ProviderAccountRuntimeStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[12].Descriptor()
}

func (ProviderAccountRuntimeStatus) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[12]
}

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

// Deprecated: Use ProviderAccountRuntimeStatus.Descriptor instead.
func (ProviderAccountRuntimeStatus) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{12}
}

// ProviderOperationType classifies commands executed through provider-hub.
type ProviderOperationType int32

const (
	ProviderOperationType_PROVIDER_OPERATION_TYPE_UNSPECIFIED                   ProviderOperationType = 0
	ProviderOperationType_PROVIDER_OPERATION_TYPE_CREATE_ISSUE                  ProviderOperationType = 1
	ProviderOperationType_PROVIDER_OPERATION_TYPE_UPDATE_ISSUE                  ProviderOperationType = 2
	ProviderOperationType_PROVIDER_OPERATION_TYPE_CREATE_COMMENT                ProviderOperationType = 3
	ProviderOperationType_PROVIDER_OPERATION_TYPE_UPDATE_COMMENT                ProviderOperationType = 4
	ProviderOperationType_PROVIDER_OPERATION_TYPE_CREATE_PULL_REQUEST           ProviderOperationType = 5
	ProviderOperationType_PROVIDER_OPERATION_TYPE_CREATE_REVIEW_SIGNAL          ProviderOperationType = 6
	ProviderOperationType_PROVIDER_OPERATION_TYPE_UPDATE_RELATIONSHIP           ProviderOperationType = 7
	ProviderOperationType_PROVIDER_OPERATION_TYPE_UPDATE_PULL_REQUEST           ProviderOperationType = 8
	ProviderOperationType_PROVIDER_OPERATION_TYPE_CREATE_BOOTSTRAP_PULL_REQUEST ProviderOperationType = 9
	ProviderOperationType_PROVIDER_OPERATION_TYPE_CREATE_REPOSITORY             ProviderOperationType = 10
	ProviderOperationType_PROVIDER_OPERATION_TYPE_CREATE_ADOPTION_PULL_REQUEST  ProviderOperationType = 11
	ProviderOperationType_PROVIDER_OPERATION_TYPE_SCAN_REPOSITORY_FOR_ADOPTION  ProviderOperationType = 12
)

// Enum value maps for ProviderOperationType.
var (
	ProviderOperationType_name = map[int32]string{
		0:  "PROVIDER_OPERATION_TYPE_UNSPECIFIED",
		1:  "PROVIDER_OPERATION_TYPE_CREATE_ISSUE",
		2:  "PROVIDER_OPERATION_TYPE_UPDATE_ISSUE",
		3:  "PROVIDER_OPERATION_TYPE_CREATE_COMMENT",
		4:  "PROVIDER_OPERATION_TYPE_UPDATE_COMMENT",
		5:  "PROVIDER_OPERATION_TYPE_CREATE_PULL_REQUEST",
		6:  "PROVIDER_OPERATION_TYPE_CREATE_REVIEW_SIGNAL",
		7:  "PROVIDER_OPERATION_TYPE_UPDATE_RELATIONSHIP",
		8:  "PROVIDER_OPERATION_TYPE_UPDATE_PULL_REQUEST",
		9:  "PROVIDER_OPERATION_TYPE_CREATE_BOOTSTRAP_PULL_REQUEST",
		10: "PROVIDER_OPERATION_TYPE_CREATE_REPOSITORY",
		11: "PROVIDER_OPERATION_TYPE_CREATE_ADOPTION_PULL_REQUEST",
		12: "PROVIDER_OPERATION_TYPE_SCAN_REPOSITORY_FOR_ADOPTION",
	}
	ProviderOperationType_value = map[string]int32{
		"PROVIDER_OPERATION_TYPE_UNSPECIFIED":                   0,
		"PROVIDER_OPERATION_TYPE_CREATE_ISSUE":                  1,
		"PROVIDER_OPERATION_TYPE_UPDATE_ISSUE":                  2,
		"PROVIDER_OPERATION_TYPE_CREATE_COMMENT":                3,
		"PROVIDER_OPERATION_TYPE_UPDATE_COMMENT":                4,
		"PROVIDER_OPERATION_TYPE_CREATE_PULL_REQUEST":           5,
		"PROVIDER_OPERATION_TYPE_CREATE_REVIEW_SIGNAL":          6,
		"PROVIDER_OPERATION_TYPE_UPDATE_RELATIONSHIP":           7,
		"PROVIDER_OPERATION_TYPE_UPDATE_PULL_REQUEST":           8,
		"PROVIDER_OPERATION_TYPE_CREATE_BOOTSTRAP_PULL_REQUEST": 9,
		"PROVIDER_OPERATION_TYPE_CREATE_REPOSITORY":             10,
		"PROVIDER_OPERATION_TYPE_CREATE_ADOPTION_PULL_REQUEST":  11,
		"PROVIDER_OPERATION_TYPE_SCAN_REPOSITORY_FOR_ADOPTION":  12,
	}
)

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

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

func (ProviderOperationType) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[13].Descriptor()
}

func (ProviderOperationType) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[13]
}

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

// Deprecated: Use ProviderOperationType.Descriptor instead.
func (ProviderOperationType) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{13}
}

// ProviderOperationStatus is the execution state of a provider operation.
type ProviderOperationStatus int32

const (
	ProviderOperationStatus_PROVIDER_OPERATION_STATUS_UNSPECIFIED      ProviderOperationStatus = 0
	ProviderOperationStatus_PROVIDER_OPERATION_STATUS_SUCCEEDED        ProviderOperationStatus = 1
	ProviderOperationStatus_PROVIDER_OPERATION_STATUS_FAILED           ProviderOperationStatus = 2
	ProviderOperationStatus_PROVIDER_OPERATION_STATUS_RETRYABLE_FAILED ProviderOperationStatus = 3
	ProviderOperationStatus_PROVIDER_OPERATION_STATUS_DENIED           ProviderOperationStatus = 4
	ProviderOperationStatus_PROVIDER_OPERATION_STATUS_IN_PROGRESS      ProviderOperationStatus = 5
)

// Enum value maps for ProviderOperationStatus.
var (
	ProviderOperationStatus_name = map[int32]string{
		0: "PROVIDER_OPERATION_STATUS_UNSPECIFIED",
		1: "PROVIDER_OPERATION_STATUS_SUCCEEDED",
		2: "PROVIDER_OPERATION_STATUS_FAILED",
		3: "PROVIDER_OPERATION_STATUS_RETRYABLE_FAILED",
		4: "PROVIDER_OPERATION_STATUS_DENIED",
		5: "PROVIDER_OPERATION_STATUS_IN_PROGRESS",
	}
	ProviderOperationStatus_value = map[string]int32{
		"PROVIDER_OPERATION_STATUS_UNSPECIFIED":      0,
		"PROVIDER_OPERATION_STATUS_SUCCEEDED":        1,
		"PROVIDER_OPERATION_STATUS_FAILED":           2,
		"PROVIDER_OPERATION_STATUS_RETRYABLE_FAILED": 3,
		"PROVIDER_OPERATION_STATUS_DENIED":           4,
		"PROVIDER_OPERATION_STATUS_IN_PROGRESS":      5,
	}
)

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

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

func (ProviderOperationStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[14].Descriptor()
}

func (ProviderOperationStatus) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[14]
}

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

// Deprecated: Use ProviderOperationStatus.Descriptor instead.
func (ProviderOperationStatus) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{14}
}

// RepositoryOwnerKind selects provider-side repository owner semantics.
type RepositoryOwnerKind int32

const (
	RepositoryOwnerKind_REPOSITORY_OWNER_KIND_UNSPECIFIED        RepositoryOwnerKind = 0
	RepositoryOwnerKind_REPOSITORY_OWNER_KIND_ORGANIZATION       RepositoryOwnerKind = 1
	RepositoryOwnerKind_REPOSITORY_OWNER_KIND_AUTHENTICATED_USER RepositoryOwnerKind = 2
)

// Enum value maps for RepositoryOwnerKind.
var (
	RepositoryOwnerKind_name = map[int32]string{
		0: "REPOSITORY_OWNER_KIND_UNSPECIFIED",
		1: "REPOSITORY_OWNER_KIND_ORGANIZATION",
		2: "REPOSITORY_OWNER_KIND_AUTHENTICATED_USER",
	}
	RepositoryOwnerKind_value = map[string]int32{
		"REPOSITORY_OWNER_KIND_UNSPECIFIED":        0,
		"REPOSITORY_OWNER_KIND_ORGANIZATION":       1,
		"REPOSITORY_OWNER_KIND_AUTHENTICATED_USER": 2,
	}
)

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

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

func (RepositoryOwnerKind) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[15].Descriptor()
}

func (RepositoryOwnerKind) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[15]
}

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

// Deprecated: Use RepositoryOwnerKind.Descriptor instead.
func (RepositoryOwnerKind) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{15}
}

// RepositoryVisibility selects provider-side repository visibility.
type RepositoryVisibility int32

const (
	RepositoryVisibility_REPOSITORY_VISIBILITY_UNSPECIFIED RepositoryVisibility = 0
	RepositoryVisibility_REPOSITORY_VISIBILITY_PUBLIC      RepositoryVisibility = 1
	RepositoryVisibility_REPOSITORY_VISIBILITY_PRIVATE     RepositoryVisibility = 2
	RepositoryVisibility_REPOSITORY_VISIBILITY_INTERNAL    RepositoryVisibility = 3
)

// Enum value maps for RepositoryVisibility.
var (
	RepositoryVisibility_name = map[int32]string{
		0: "REPOSITORY_VISIBILITY_UNSPECIFIED",
		1: "REPOSITORY_VISIBILITY_PUBLIC",
		2: "REPOSITORY_VISIBILITY_PRIVATE",
		3: "REPOSITORY_VISIBILITY_INTERNAL",
	}
	RepositoryVisibility_value = map[string]int32{
		"REPOSITORY_VISIBILITY_UNSPECIFIED": 0,
		"REPOSITORY_VISIBILITY_PUBLIC":      1,
		"REPOSITORY_VISIBILITY_PRIVATE":     2,
		"REPOSITORY_VISIBILITY_INTERNAL":    3,
	}
)

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

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

func (RepositoryVisibility) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[16].Descriptor()
}

func (RepositoryVisibility) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[16]
}

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

// Deprecated: Use RepositoryVisibility.Descriptor instead.
func (RepositoryVisibility) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{16}
}

// RepositoryAdoptionScanStatus is the safe outcome status of a lightweight provider-side adoption scan.
type RepositoryAdoptionScanStatus int32

const (
	RepositoryAdoptionScanStatus_REPOSITORY_ADOPTION_SCAN_STATUS_UNSPECIFIED  RepositoryAdoptionScanStatus = 0
	RepositoryAdoptionScanStatus_REPOSITORY_ADOPTION_SCAN_STATUS_COMPLETED    RepositoryAdoptionScanStatus = 1
	RepositoryAdoptionScanStatus_REPOSITORY_ADOPTION_SCAN_STATUS_LIMITED      RepositoryAdoptionScanStatus = 2
	RepositoryAdoptionScanStatus_REPOSITORY_ADOPTION_SCAN_STATUS_NEEDS_REVIEW RepositoryAdoptionScanStatus = 3
)

// Enum value maps for RepositoryAdoptionScanStatus.
var (
	RepositoryAdoptionScanStatus_name = map[int32]string{
		0: "REPOSITORY_ADOPTION_SCAN_STATUS_UNSPECIFIED",
		1: "REPOSITORY_ADOPTION_SCAN_STATUS_COMPLETED",
		2: "REPOSITORY_ADOPTION_SCAN_STATUS_LIMITED",
		3: "REPOSITORY_ADOPTION_SCAN_STATUS_NEEDS_REVIEW",
	}
	RepositoryAdoptionScanStatus_value = map[string]int32{
		"REPOSITORY_ADOPTION_SCAN_STATUS_UNSPECIFIED":  0,
		"REPOSITORY_ADOPTION_SCAN_STATUS_COMPLETED":    1,
		"REPOSITORY_ADOPTION_SCAN_STATUS_LIMITED":      2,
		"REPOSITORY_ADOPTION_SCAN_STATUS_NEEDS_REVIEW": 3,
	}
)

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

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

func (RepositoryAdoptionScanStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[17].Descriptor()
}

func (RepositoryAdoptionScanStatus) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[17]
}

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

// Deprecated: Use RepositoryAdoptionScanStatus.Descriptor instead.
func (RepositoryAdoptionScanStatus) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{17}
}

// ProviderOwnedDataStatus describes readiness of a provider-owned read result.
type ProviderOwnedDataStatus int32

const (
	ProviderOwnedDataStatus_PROVIDER_OWNED_DATA_STATUS_UNSPECIFIED  ProviderOwnedDataStatus = 0
	ProviderOwnedDataStatus_PROVIDER_OWNED_DATA_STATUS_READY        ProviderOwnedDataStatus = 1
	ProviderOwnedDataStatus_PROVIDER_OWNED_DATA_STATUS_NOT_FOUND    ProviderOwnedDataStatus = 2
	ProviderOwnedDataStatus_PROVIDER_OWNED_DATA_STATUS_NOT_VERIFIED ProviderOwnedDataStatus = 3
	ProviderOwnedDataStatus_PROVIDER_OWNED_DATA_STATUS_STALE        ProviderOwnedDataStatus = 4
)

// Enum value maps for ProviderOwnedDataStatus.
var (
	ProviderOwnedDataStatus_name = map[int32]string{
		0: "PROVIDER_OWNED_DATA_STATUS_UNSPECIFIED",
		1: "PROVIDER_OWNED_DATA_STATUS_READY",
		2: "PROVIDER_OWNED_DATA_STATUS_NOT_FOUND",
		3: "PROVIDER_OWNED_DATA_STATUS_NOT_VERIFIED",
		4: "PROVIDER_OWNED_DATA_STATUS_STALE",
	}
	ProviderOwnedDataStatus_value = map[string]int32{
		"PROVIDER_OWNED_DATA_STATUS_UNSPECIFIED":  0,
		"PROVIDER_OWNED_DATA_STATUS_READY":        1,
		"PROVIDER_OWNED_DATA_STATUS_NOT_FOUND":    2,
		"PROVIDER_OWNED_DATA_STATUS_NOT_VERIFIED": 3,
		"PROVIDER_OWNED_DATA_STATUS_STALE":        4,
	}
)

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

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

func (ProviderOwnedDataStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[18].Descriptor()
}

func (ProviderOwnedDataStatus) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[18]
}

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

// Deprecated: Use ProviderOwnedDataStatus.Descriptor instead.
func (ProviderOwnedDataStatus) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{18}
}

// RepositoryMergeSignalKind classifies provider-side onboarding merge signals.
type RepositoryMergeSignalKind int32

const (
	RepositoryMergeSignalKind_REPOSITORY_MERGE_SIGNAL_KIND_UNSPECIFIED RepositoryMergeSignalKind = 0
	RepositoryMergeSignalKind_REPOSITORY_MERGE_SIGNAL_KIND_BOOTSTRAP   RepositoryMergeSignalKind = 1
	RepositoryMergeSignalKind_REPOSITORY_MERGE_SIGNAL_KIND_ADOPTION    RepositoryMergeSignalKind = 2
)

// Enum value maps for RepositoryMergeSignalKind.
var (
	RepositoryMergeSignalKind_name = map[int32]string{
		0: "REPOSITORY_MERGE_SIGNAL_KIND_UNSPECIFIED",
		1: "REPOSITORY_MERGE_SIGNAL_KIND_BOOTSTRAP",
		2: "REPOSITORY_MERGE_SIGNAL_KIND_ADOPTION",
	}
	RepositoryMergeSignalKind_value = map[string]int32{
		"REPOSITORY_MERGE_SIGNAL_KIND_UNSPECIFIED": 0,
		"REPOSITORY_MERGE_SIGNAL_KIND_BOOTSTRAP":   1,
		"REPOSITORY_MERGE_SIGNAL_KIND_ADOPTION":    2,
	}
)

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

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

func (RepositoryMergeSignalKind) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[19].Descriptor()
}

func (RepositoryMergeSignalKind) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[19]
}

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

// Deprecated: Use RepositoryMergeSignalKind.Descriptor instead.
func (RepositoryMergeSignalKind) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{19}
}

// RepositoryMergeSignalStatus describes the provider-side merge signal lifecycle.
type RepositoryMergeSignalStatus int32

const (
	RepositoryMergeSignalStatus_REPOSITORY_MERGE_SIGNAL_STATUS_UNSPECIFIED RepositoryMergeSignalStatus = 0
	RepositoryMergeSignalStatus_REPOSITORY_MERGE_SIGNAL_STATUS_MERGED      RepositoryMergeSignalStatus = 1
)

// Enum value maps for RepositoryMergeSignalStatus.
var (
	RepositoryMergeSignalStatus_name = map[int32]string{
		0: "REPOSITORY_MERGE_SIGNAL_STATUS_UNSPECIFIED",
		1: "REPOSITORY_MERGE_SIGNAL_STATUS_MERGED",
	}
	RepositoryMergeSignalStatus_value = map[string]int32{
		"REPOSITORY_MERGE_SIGNAL_STATUS_UNSPECIFIED": 0,
		"REPOSITORY_MERGE_SIGNAL_STATUS_MERGED":      1,
	}
)

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

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

func (RepositoryMergeSignalStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[20].Descriptor()
}

func (RepositoryMergeSignalStatus) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[20]
}

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

// Deprecated: Use RepositoryMergeSignalStatus.Descriptor instead.
func (RepositoryMergeSignalStatus) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{20}
}

// RepositoryChangeSignalKind classifies provider-side repository content change signals.
type RepositoryChangeSignalKind int32

const (
	RepositoryChangeSignalKind_REPOSITORY_CHANGE_SIGNAL_KIND_UNSPECIFIED         RepositoryChangeSignalKind = 0
	RepositoryChangeSignalKind_REPOSITORY_CHANGE_SIGNAL_KIND_PUSH                RepositoryChangeSignalKind = 1
	RepositoryChangeSignalKind_REPOSITORY_CHANGE_SIGNAL_KIND_PULL_REQUEST_MERGED RepositoryChangeSignalKind = 2
)

// Enum value maps for RepositoryChangeSignalKind.
var (
	RepositoryChangeSignalKind_name = map[int32]string{
		0: "REPOSITORY_CHANGE_SIGNAL_KIND_UNSPECIFIED",
		1: "REPOSITORY_CHANGE_SIGNAL_KIND_PUSH",
		2: "REPOSITORY_CHANGE_SIGNAL_KIND_PULL_REQUEST_MERGED",
	}
	RepositoryChangeSignalKind_value = map[string]int32{
		"REPOSITORY_CHANGE_SIGNAL_KIND_UNSPECIFIED":         0,
		"REPOSITORY_CHANGE_SIGNAL_KIND_PUSH":                1,
		"REPOSITORY_CHANGE_SIGNAL_KIND_PULL_REQUEST_MERGED": 2,
	}
)

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

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

func (RepositoryChangeSignalKind) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[21].Descriptor()
}

func (RepositoryChangeSignalKind) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[21]
}

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

// Deprecated: Use RepositoryChangeSignalKind.Descriptor instead.
func (RepositoryChangeSignalKind) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{21}
}

// RepositoryChangeSignalStatus describes the provider-side repository change signal lifecycle.
type RepositoryChangeSignalStatus int32

const (
	RepositoryChangeSignalStatus_REPOSITORY_CHANGE_SIGNAL_STATUS_UNSPECIFIED RepositoryChangeSignalStatus = 0
	RepositoryChangeSignalStatus_REPOSITORY_CHANGE_SIGNAL_STATUS_OBSERVED    RepositoryChangeSignalStatus = 1
)

// Enum value maps for RepositoryChangeSignalStatus.
var (
	RepositoryChangeSignalStatus_name = map[int32]string{
		0: "REPOSITORY_CHANGE_SIGNAL_STATUS_UNSPECIFIED",
		1: "REPOSITORY_CHANGE_SIGNAL_STATUS_OBSERVED",
	}
	RepositoryChangeSignalStatus_value = map[string]int32{
		"REPOSITORY_CHANGE_SIGNAL_STATUS_UNSPECIFIED": 0,
		"REPOSITORY_CHANGE_SIGNAL_STATUS_OBSERVED":    1,
	}
)

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

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

func (RepositoryChangeSignalStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[22].Descriptor()
}

func (RepositoryChangeSignalStatus) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[22]
}

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

// Deprecated: Use RepositoryChangeSignalStatus.Descriptor instead.
func (RepositoryChangeSignalStatus) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{22}
}

// RepositoryChangePathSummaryStatus describes how much path metadata the provider signal carries.
type RepositoryChangePathSummaryStatus int32

const (
	RepositoryChangePathSummaryStatus_REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_UNSPECIFIED RepositoryChangePathSummaryStatus = 0
	RepositoryChangePathSummaryStatus_REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_READY       RepositoryChangePathSummaryStatus = 1
	RepositoryChangePathSummaryStatus_REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_UNAVAILABLE RepositoryChangePathSummaryStatus = 2
	RepositoryChangePathSummaryStatus_REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_TRUNCATED   RepositoryChangePathSummaryStatus = 3
)

// Enum value maps for RepositoryChangePathSummaryStatus.
var (
	RepositoryChangePathSummaryStatus_name = map[int32]string{
		0: "REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_UNSPECIFIED",
		1: "REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_READY",
		2: "REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_UNAVAILABLE",
		3: "REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_TRUNCATED",
	}
	RepositoryChangePathSummaryStatus_value = map[string]int32{
		"REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_UNSPECIFIED": 0,
		"REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_READY":       1,
		"REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_UNAVAILABLE": 2,
		"REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_TRUNCATED":   3,
	}
)

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

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

func (RepositoryChangePathSummaryStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[23].Descriptor()
}

func (RepositoryChangePathSummaryStatus) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[23]
}

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

// Deprecated: Use RepositoryChangePathSummaryStatus.Descriptor instead.
func (RepositoryChangePathSummaryStatus) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{23}
}

// RepositoryChangePathCategory classifies changed paths without raw diffs or file contents.
type RepositoryChangePathCategory int32

const (
	RepositoryChangePathCategory_REPOSITORY_CHANGE_PATH_CATEGORY_UNSPECIFIED     RepositoryChangePathCategory = 0
	RepositoryChangePathCategory_REPOSITORY_CHANGE_PATH_CATEGORY_SERVICES_POLICY RepositoryChangePathCategory = 1
	RepositoryChangePathCategory_REPOSITORY_CHANGE_PATH_CATEGORY_SERVICE_SOURCE  RepositoryChangePathCategory = 2
	RepositoryChangePathCategory_REPOSITORY_CHANGE_PATH_CATEGORY_SERVICE_CONFIG  RepositoryChangePathCategory = 3
	RepositoryChangePathCategory_REPOSITORY_CHANGE_PATH_CATEGORY_DEPLOY_MANIFEST RepositoryChangePathCategory = 4
	RepositoryChangePathCategory_REPOSITORY_CHANGE_PATH_CATEGORY_RUNTIME_CONFIG  RepositoryChangePathCategory = 5
	RepositoryChangePathCategory_REPOSITORY_CHANGE_PATH_CATEGORY_DOCUMENTATION   RepositoryChangePathCategory = 6
	RepositoryChangePathCategory_REPOSITORY_CHANGE_PATH_CATEGORY_TEST            RepositoryChangePathCategory = 7
	RepositoryChangePathCategory_REPOSITORY_CHANGE_PATH_CATEGORY_PLATFORM_POLICY RepositoryChangePathCategory = 8
	RepositoryChangePathCategory_REPOSITORY_CHANGE_PATH_CATEGORY_OTHER           RepositoryChangePathCategory = 9
)

// Enum value maps for RepositoryChangePathCategory.
var (
	RepositoryChangePathCategory_name = map[int32]string{
		0: "REPOSITORY_CHANGE_PATH_CATEGORY_UNSPECIFIED",
		1: "REPOSITORY_CHANGE_PATH_CATEGORY_SERVICES_POLICY",
		2: "REPOSITORY_CHANGE_PATH_CATEGORY_SERVICE_SOURCE",
		3: "REPOSITORY_CHANGE_PATH_CATEGORY_SERVICE_CONFIG",
		4: "REPOSITORY_CHANGE_PATH_CATEGORY_DEPLOY_MANIFEST",
		5: "REPOSITORY_CHANGE_PATH_CATEGORY_RUNTIME_CONFIG",
		6: "REPOSITORY_CHANGE_PATH_CATEGORY_DOCUMENTATION",
		7: "REPOSITORY_CHANGE_PATH_CATEGORY_TEST",
		8: "REPOSITORY_CHANGE_PATH_CATEGORY_PLATFORM_POLICY",
		9: "REPOSITORY_CHANGE_PATH_CATEGORY_OTHER",
	}
	RepositoryChangePathCategory_value = map[string]int32{
		"REPOSITORY_CHANGE_PATH_CATEGORY_UNSPECIFIED":     0,
		"REPOSITORY_CHANGE_PATH_CATEGORY_SERVICES_POLICY": 1,
		"REPOSITORY_CHANGE_PATH_CATEGORY_SERVICE_SOURCE":  2,
		"REPOSITORY_CHANGE_PATH_CATEGORY_SERVICE_CONFIG":  3,
		"REPOSITORY_CHANGE_PATH_CATEGORY_DEPLOY_MANIFEST": 4,
		"REPOSITORY_CHANGE_PATH_CATEGORY_RUNTIME_CONFIG":  5,
		"REPOSITORY_CHANGE_PATH_CATEGORY_DOCUMENTATION":   6,
		"REPOSITORY_CHANGE_PATH_CATEGORY_TEST":            7,
		"REPOSITORY_CHANGE_PATH_CATEGORY_PLATFORM_POLICY": 8,
		"REPOSITORY_CHANGE_PATH_CATEGORY_OTHER":           9,
	}
)

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

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

func (RepositoryChangePathCategory) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[24].Descriptor()
}

func (RepositoryChangePathCategory) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[24]
}

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

// Deprecated: Use RepositoryChangePathCategory.Descriptor instead.
func (RepositoryChangePathCategory) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{24}
}

// RepositoryAdoptionMarkerKind classifies safe file markers discovered without reading raw content.
type RepositoryAdoptionMarkerKind int32

const (
	RepositoryAdoptionMarkerKind_REPOSITORY_ADOPTION_MARKER_KIND_UNSPECIFIED        RepositoryAdoptionMarkerKind = 0
	RepositoryAdoptionMarkerKind_REPOSITORY_ADOPTION_MARKER_KIND_SERVICE_DESCRIPTOR RepositoryAdoptionMarkerKind = 1
	RepositoryAdoptionMarkerKind_REPOSITORY_ADOPTION_MARKER_KIND_GITMODULES         RepositoryAdoptionMarkerKind = 2
	RepositoryAdoptionMarkerKind_REPOSITORY_ADOPTION_MARKER_KIND_README             RepositoryAdoptionMarkerKind = 3
	RepositoryAdoptionMarkerKind_REPOSITORY_ADOPTION_MARKER_KIND_AGENTS             RepositoryAdoptionMarkerKind = 4
	RepositoryAdoptionMarkerKind_REPOSITORY_ADOPTION_MARKER_KIND_DOCS               RepositoryAdoptionMarkerKind = 5
	RepositoryAdoptionMarkerKind_REPOSITORY_ADOPTION_MARKER_KIND_WORKFLOW           RepositoryAdoptionMarkerKind = 6
	RepositoryAdoptionMarkerKind_REPOSITORY_ADOPTION_MARKER_KIND_MODULE             RepositoryAdoptionMarkerKind = 7
	RepositoryAdoptionMarkerKind_REPOSITORY_ADOPTION_MARKER_KIND_PACKAGE            RepositoryAdoptionMarkerKind = 8
	RepositoryAdoptionMarkerKind_REPOSITORY_ADOPTION_MARKER_KIND_DEPLOY             RepositoryAdoptionMarkerKind = 9
	RepositoryAdoptionMarkerKind_REPOSITORY_ADOPTION_MARKER_KIND_OTHER              RepositoryAdoptionMarkerKind = 10
)

// Enum value maps for RepositoryAdoptionMarkerKind.
var (
	RepositoryAdoptionMarkerKind_name = map[int32]string{
		0:  "REPOSITORY_ADOPTION_MARKER_KIND_UNSPECIFIED",
		1:  "REPOSITORY_ADOPTION_MARKER_KIND_SERVICE_DESCRIPTOR",
		2:  "REPOSITORY_ADOPTION_MARKER_KIND_GITMODULES",
		3:  "REPOSITORY_ADOPTION_MARKER_KIND_README",
		4:  "REPOSITORY_ADOPTION_MARKER_KIND_AGENTS",
		5:  "REPOSITORY_ADOPTION_MARKER_KIND_DOCS",
		6:  "REPOSITORY_ADOPTION_MARKER_KIND_WORKFLOW",
		7:  "REPOSITORY_ADOPTION_MARKER_KIND_MODULE",
		8:  "REPOSITORY_ADOPTION_MARKER_KIND_PACKAGE",
		9:  "REPOSITORY_ADOPTION_MARKER_KIND_DEPLOY",
		10: "REPOSITORY_ADOPTION_MARKER_KIND_OTHER",
	}
	RepositoryAdoptionMarkerKind_value = map[string]int32{
		"REPOSITORY_ADOPTION_MARKER_KIND_UNSPECIFIED":        0,
		"REPOSITORY_ADOPTION_MARKER_KIND_SERVICE_DESCRIPTOR": 1,
		"REPOSITORY_ADOPTION_MARKER_KIND_GITMODULES":         2,
		"REPOSITORY_ADOPTION_MARKER_KIND_README":             3,
		"REPOSITORY_ADOPTION_MARKER_KIND_AGENTS":             4,
		"REPOSITORY_ADOPTION_MARKER_KIND_DOCS":               5,
		"REPOSITORY_ADOPTION_MARKER_KIND_WORKFLOW":           6,
		"REPOSITORY_ADOPTION_MARKER_KIND_MODULE":             7,
		"REPOSITORY_ADOPTION_MARKER_KIND_PACKAGE":            8,
		"REPOSITORY_ADOPTION_MARKER_KIND_DEPLOY":             9,
		"REPOSITORY_ADOPTION_MARKER_KIND_OTHER":              10,
	}
)

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

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

func (RepositoryAdoptionMarkerKind) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[25].Descriptor()
}

func (RepositoryAdoptionMarkerKind) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[25]
}

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

// Deprecated: Use RepositoryAdoptionMarkerKind.Descriptor instead.
func (RepositoryAdoptionMarkerKind) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{25}
}

// ReviewSignalKind classifies provider-native review actions.
type ReviewSignalKind int32

const (
	ReviewSignalKind_REVIEW_SIGNAL_KIND_UNSPECIFIED       ReviewSignalKind = 0
	ReviewSignalKind_REVIEW_SIGNAL_KIND_COMMENT           ReviewSignalKind = 1
	ReviewSignalKind_REVIEW_SIGNAL_KIND_APPROVAL          ReviewSignalKind = 2
	ReviewSignalKind_REVIEW_SIGNAL_KIND_CHANGES_REQUESTED ReviewSignalKind = 3
)

// Enum value maps for ReviewSignalKind.
var (
	ReviewSignalKind_name = map[int32]string{
		0: "REVIEW_SIGNAL_KIND_UNSPECIFIED",
		1: "REVIEW_SIGNAL_KIND_COMMENT",
		2: "REVIEW_SIGNAL_KIND_APPROVAL",
		3: "REVIEW_SIGNAL_KIND_CHANGES_REQUESTED",
	}
	ReviewSignalKind_value = map[string]int32{
		"REVIEW_SIGNAL_KIND_UNSPECIFIED":       0,
		"REVIEW_SIGNAL_KIND_COMMENT":           1,
		"REVIEW_SIGNAL_KIND_APPROVAL":          2,
		"REVIEW_SIGNAL_KIND_CHANGES_REQUESTED": 3,
	}
)

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

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

func (ReviewSignalKind) Descriptor() protoreflect.EnumDescriptor {
	return file_kodex_providers_v1_provider_hub_proto_enumTypes[26].Descriptor()
}

func (ReviewSignalKind) Type() protoreflect.EnumType {
	return &file_kodex_providers_v1_provider_hub_proto_enumTypes[26]
}

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

// Deprecated: Use ReviewSignalKind.Descriptor instead.
func (ReviewSignalKind) EnumDescriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{26}
}

// CommandMeta is required for every mutating command.
type CommandMeta struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// command_id is a unique command identifier. Either command_id or idempotency_key is required.
	CommandId *string `protobuf:"bytes,1,opt,name=command_id,json=commandId,proto3,oneof" json:"command_id,omitempty"`
	// idempotency_key is an idempotency key scoped by operation and actor.
	IdempotencyKey *string `protobuf:"bytes,2,opt,name=idempotency_key,json=idempotencyKey,proto3,oneof" json:"idempotency_key,omitempty"`
	// expected_version is present only for existing aggregate mutations.
	ExpectedVersion *int64 `protobuf:"varint,3,opt,name=expected_version,json=expectedVersion,proto3,oneof" json:"expected_version,omitempty"`
	// actor is the authenticated caller.
	Actor *Actor `protobuf:"bytes,4,opt,name=actor,proto3" json:"actor,omitempty"`
	// reason is a machine or operator reason for audit and domain events.
	Reason string `protobuf:"bytes,5,opt,name=reason,proto3" json:"reason,omitempty"`
	// request_id links the command to logs, traces and audit.
	RequestId string `protobuf:"bytes,6,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// request_context carries safe request metadata; no tokens, secrets, email or names.
	RequestContext *RequestContext `protobuf:"bytes,7,opt,name=request_context,json=requestContext,proto3" json:"request_context,omitempty"`
	// operation_policy_context carries the risk-based policy input used by the caller.
	OperationPolicyContext *ProviderOperationPolicyContext `protobuf:"bytes,8,opt,name=operation_policy_context,json=operationPolicyContext,proto3" json:"operation_policy_context,omitempty"`
	// approval_gate_ref carries an already approved gate reference when policy requires it.
	ApprovalGateRef *ApprovalGateReference `protobuf:"bytes,9,opt,name=approval_gate_ref,json=approvalGateRef,proto3" json:"approval_gate_ref,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*CommandMeta) ProtoMessage() {}

func (x *CommandMeta) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_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 CommandMeta.ProtoReflect.Descriptor instead.
func (*CommandMeta) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{0}
}

func (x *CommandMeta) GetCommandId() string {
	if x != nil && x.CommandId != nil {
		return *x.CommandId
	}
	return ""
}

func (x *CommandMeta) GetIdempotencyKey() string {
	if x != nil && x.IdempotencyKey != nil {
		return *x.IdempotencyKey
	}
	return ""
}

func (x *CommandMeta) GetExpectedVersion() int64 {
	if x != nil && x.ExpectedVersion != nil {
		return *x.ExpectedVersion
	}
	return 0
}

func (x *CommandMeta) GetActor() *Actor {
	if x != nil {
		return x.Actor
	}
	return nil
}

func (x *CommandMeta) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *CommandMeta) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *CommandMeta) GetRequestContext() *RequestContext {
	if x != nil {
		return x.RequestContext
	}
	return nil
}

func (x *CommandMeta) GetOperationPolicyContext() *ProviderOperationPolicyContext {
	if x != nil {
		return x.OperationPolicyContext
	}
	return nil
}

func (x *CommandMeta) GetApprovalGateRef() *ApprovalGateReference {
	if x != nil {
		return x.ApprovalGateRef
	}
	return nil
}

// QueryMeta carries safe metadata for authoritative reads.
type QueryMeta struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// actor is the authenticated caller.
	Actor *Actor `protobuf:"bytes,1,opt,name=actor,proto3" json:"actor,omitempty"`
	// request_id links the read to logs and traces.
	RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// request_context carries safe request metadata.
	RequestContext *RequestContext `protobuf:"bytes,3,opt,name=request_context,json=requestContext,proto3" json:"request_context,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*QueryMeta) ProtoMessage() {}

func (x *QueryMeta) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_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 QueryMeta.ProtoReflect.Descriptor instead.
func (*QueryMeta) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{1}
}

func (x *QueryMeta) GetActor() *Actor {
	if x != nil {
		return x.Actor
	}
	return nil
}

func (x *QueryMeta) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *QueryMeta) GetRequestContext() *RequestContext {
	if x != nil {
		return x.RequestContext
	}
	return nil
}

// RequestContext is safe request metadata used for audit and diagnostics.
type RequestContext struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// source identifies caller surface, for example integration-gateway, platform-mcp-server or service.
	Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"`
	// trace_id links platform traces.
	TraceId *string `protobuf:"bytes,2,opt,name=trace_id,json=traceId,proto3,oneof" json:"trace_id,omitempty"`
	// session_id links a user session when available.
	SessionId *string `protobuf:"bytes,3,opt,name=session_id,json=sessionId,proto3,oneof" json:"session_id,omitempty"`
	// client_ip_hash is an optional hashed client address.
	ClientIpHash  *string `protobuf:"bytes,4,opt,name=client_ip_hash,json=clientIpHash,proto3,oneof" json:"client_ip_hash,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RequestContext) ProtoMessage() {}

func (x *RequestContext) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_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 RequestContext.ProtoReflect.Descriptor instead.
func (*RequestContext) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{2}
}

func (x *RequestContext) GetSource() string {
	if x != nil {
		return x.Source
	}
	return ""
}

func (x *RequestContext) GetTraceId() string {
	if x != nil && x.TraceId != nil {
		return *x.TraceId
	}
	return ""
}

func (x *RequestContext) GetSessionId() string {
	if x != nil && x.SessionId != nil {
		return *x.SessionId
	}
	return ""
}

func (x *RequestContext) GetClientIpHash() string {
	if x != nil && x.ClientIpHash != nil {
		return *x.ClientIpHash
	}
	return ""
}

// ProviderOperationPolicyContext is the safe policy context for a provider command.
type ProviderOperationPolicyContext struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// project_id is the project-catalog project id used by risk policy.
	ProjectId *string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3,oneof" json:"project_id,omitempty"`
	// repository_id is the project-catalog repository binding id used by risk policy.
	RepositoryId *string `protobuf:"bytes,2,opt,name=repository_id,json=repositoryId,proto3,oneof" json:"repository_id,omitempty"`
	// stage is the workflow or delivery stage, for example dev, qa or release.
	Stage *string `protobuf:"bytes,3,opt,name=stage,proto3,oneof" json:"stage,omitempty"`
	// role_id is the platform role id used by the caller.
	RoleId *string `protobuf:"bytes,4,opt,name=role_id,json=roleId,proto3,oneof" json:"role_id,omitempty"`
	// role_key is a stable role key used by policy and audit.
	RoleKey *string `protobuf:"bytes,5,opt,name=role_key,json=roleKey,proto3,oneof" json:"role_key,omitempty"`
	// operation_type is the operation evaluated by policy.
	OperationType ProviderOperationType `protobuf:"varint,6,opt,name=operation_type,json=operationType,proto3,enum=kodex.providers.v1.ProviderOperationType" json:"operation_type,omitempty"`
	// target_ref is a safe provider target reference used by policy.
	TargetRef *string `protobuf:"bytes,7,opt,name=target_ref,json=targetRef,proto3,oneof" json:"target_ref,omitempty"`
	// changed_fields are typed field names the command wants to change.
	ChangedFields []string `protobuf:"bytes,8,rep,name=changed_fields,json=changedFields,proto3" json:"changed_fields,omitempty"`
	// risk_tags are policy-specific risk classifiers.
	RiskTags []string `protobuf:"bytes,9,rep,name=risk_tags,json=riskTags,proto3" json:"risk_tags,omitempty"`
	// risk_level is the policy result known to the caller.
	RiskLevel ProviderOperationRiskLevel `protobuf:"varint,10,opt,name=risk_level,json=riskLevel,proto3,enum=kodex.providers.v1.ProviderOperationRiskLevel" json:"risk_level,omitempty"`
	// approval_required tells provider-hub that an approval_gate_ref must be present.
	ApprovalRequired bool `protobuf:"varint,11,opt,name=approval_required,json=approvalRequired,proto3" json:"approval_required,omitempty"`
	// policy_version identifies the risk policy revision.
	PolicyVersion *string `protobuf:"bytes,12,opt,name=policy_version,json=policyVersion,proto3,oneof" json:"policy_version,omitempty"`
	// policy_snapshot_ref points to an immutable policy snapshot or decision record.
	PolicySnapshotRef *string `protobuf:"bytes,13,opt,name=policy_snapshot_ref,json=policySnapshotRef,proto3,oneof" json:"policy_snapshot_ref,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*ProviderOperationPolicyContext) ProtoMessage() {}

func (x *ProviderOperationPolicyContext) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_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 ProviderOperationPolicyContext.ProtoReflect.Descriptor instead.
func (*ProviderOperationPolicyContext) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{3}
}

func (x *ProviderOperationPolicyContext) GetProjectId() string {
	if x != nil && x.ProjectId != nil {
		return *x.ProjectId
	}
	return ""
}

func (x *ProviderOperationPolicyContext) GetRepositoryId() string {
	if x != nil && x.RepositoryId != nil {
		return *x.RepositoryId
	}
	return ""
}

func (x *ProviderOperationPolicyContext) GetStage() string {
	if x != nil && x.Stage != nil {
		return *x.Stage
	}
	return ""
}

func (x *ProviderOperationPolicyContext) GetRoleId() string {
	if x != nil && x.RoleId != nil {
		return *x.RoleId
	}
	return ""
}

func (x *ProviderOperationPolicyContext) GetRoleKey() string {
	if x != nil && x.RoleKey != nil {
		return *x.RoleKey
	}
	return ""
}

func (x *ProviderOperationPolicyContext) GetOperationType() ProviderOperationType {
	if x != nil {
		return x.OperationType
	}
	return ProviderOperationType_PROVIDER_OPERATION_TYPE_UNSPECIFIED
}

func (x *ProviderOperationPolicyContext) GetTargetRef() string {
	if x != nil && x.TargetRef != nil {
		return *x.TargetRef
	}
	return ""
}

func (x *ProviderOperationPolicyContext) GetChangedFields() []string {
	if x != nil {
		return x.ChangedFields
	}
	return nil
}

func (x *ProviderOperationPolicyContext) GetRiskTags() []string {
	if x != nil {
		return x.RiskTags
	}
	return nil
}

func (x *ProviderOperationPolicyContext) GetRiskLevel() ProviderOperationRiskLevel {
	if x != nil {
		return x.RiskLevel
	}
	return ProviderOperationRiskLevel_PROVIDER_OPERATION_RISK_LEVEL_UNSPECIFIED
}

func (x *ProviderOperationPolicyContext) GetApprovalRequired() bool {
	if x != nil {
		return x.ApprovalRequired
	}
	return false
}

func (x *ProviderOperationPolicyContext) GetPolicyVersion() string {
	if x != nil && x.PolicyVersion != nil {
		return *x.PolicyVersion
	}
	return ""
}

func (x *ProviderOperationPolicyContext) GetPolicySnapshotRef() string {
	if x != nil && x.PolicySnapshotRef != nil {
		return *x.PolicySnapshotRef
	}
	return ""
}

// ApprovalGateReference references an approval or gate decision owned by another service.
type ApprovalGateReference struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// approval_id is the owner-service approval or gate id.
	ApprovalId string `protobuf:"bytes,1,opt,name=approval_id,json=approvalId,proto3" json:"approval_id,omitempty"`
	// gate_type classifies the gate, for example owner_approval, release_gate or risk_acceptance.
	GateType string `protobuf:"bytes,2,opt,name=gate_type,json=gateType,proto3" json:"gate_type,omitempty"`
	// decision is the approved decision value accepted by caller policy.
	Decision string `protobuf:"bytes,3,opt,name=decision,proto3" json:"decision,omitempty"`
	// decided_by_actor_id is the approving platform actor id when available.
	DecidedByActorId *string `protobuf:"bytes,4,opt,name=decided_by_actor_id,json=decidedByActorId,proto3,oneof" json:"decided_by_actor_id,omitempty"`
	// decided_at is the decision time in RFC3339 format when available.
	DecidedAt *string `protobuf:"bytes,5,opt,name=decided_at,json=decidedAt,proto3,oneof" json:"decided_at,omitempty"`
	// evidence_ref points to safe approval evidence; it must not contain secrets.
	EvidenceRef *string `protobuf:"bytes,6,opt,name=evidence_ref,json=evidenceRef,proto3,oneof" json:"evidence_ref,omitempty"`
	// policy_version identifies the policy version used by the approval service.
	PolicyVersion *string `protobuf:"bytes,7,opt,name=policy_version,json=policyVersion,proto3,oneof" json:"policy_version,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ApprovalGateReference) ProtoMessage() {}

func (x *ApprovalGateReference) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_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 ApprovalGateReference.ProtoReflect.Descriptor instead.
func (*ApprovalGateReference) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{4}
}

func (x *ApprovalGateReference) GetApprovalId() string {
	if x != nil {
		return x.ApprovalId
	}
	return ""
}

func (x *ApprovalGateReference) GetGateType() string {
	if x != nil {
		return x.GateType
	}
	return ""
}

func (x *ApprovalGateReference) GetDecision() string {
	if x != nil {
		return x.Decision
	}
	return ""
}

func (x *ApprovalGateReference) GetDecidedByActorId() string {
	if x != nil && x.DecidedByActorId != nil {
		return *x.DecidedByActorId
	}
	return ""
}

func (x *ApprovalGateReference) GetDecidedAt() string {
	if x != nil && x.DecidedAt != nil {
		return *x.DecidedAt
	}
	return ""
}

func (x *ApprovalGateReference) GetEvidenceRef() string {
	if x != nil && x.EvidenceRef != nil {
		return *x.EvidenceRef
	}
	return ""
}

func (x *ApprovalGateReference) GetPolicyVersion() string {
	if x != nil && x.PolicyVersion != nil {
		return *x.PolicyVersion
	}
	return ""
}

// Actor identifies a user, service, agent or external account.
type Actor struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// type is a subject type such as user, service, agent or external_account.
	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	// id is the subject identifier in its owner domain.
	Id            string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Actor) ProtoMessage() {}

func (x *Actor) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_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 Actor.ProtoReflect.Descriptor instead.
func (*Actor) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{5}
}

func (x *Actor) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *Actor) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// PageRequest limits list responses.
type PageRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// page_size is the maximum item count requested by caller.
	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// page_token is an opaque continuation token returned by a previous call.
	PageToken     *string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3,oneof" json:"page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PageRequest) ProtoMessage() {}

func (x *PageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_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 PageRequest.ProtoReflect.Descriptor instead.
func (*PageRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{6}
}

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

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

// PageResponse describes list continuation state.
type PageResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// next_page_token is empty when there are no more items.
	NextPageToken *string `protobuf:"bytes,1,opt,name=next_page_token,json=nextPageToken,proto3,oneof" json:"next_page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PageResponse) ProtoMessage() {}

func (x *PageResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_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 PageResponse.ProtoReflect.Descriptor instead.
func (*PageResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{7}
}

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

// StringListPatch distinguishes absent list update from replacing the list with an empty value.
type StringListPatch struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// values is the complete replacement list.
	// Empty values with present message clears the list.
	Values        []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StringListPatch) ProtoMessage() {}

func (x *StringListPatch) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_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 StringListPatch.ProtoReflect.Descriptor instead.
func (*StringListPatch) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{8}
}

func (x *StringListPatch) GetValues() []string {
	if x != nil {
		return x.Values
	}
	return nil
}

// ReviewInlineComment is a typed inline comment for a provider-native review.
type ReviewInlineComment struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// path is the repository file path.
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// body is the inline comment text.
	Body string `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"`
	// line is the end line in the provider diff when creating a new thread.
	Line *int64 `protobuf:"varint,3,opt,name=line,proto3,oneof" json:"line,omitempty"`
	// start_line is the optional start line for a multi-line diff comment.
	StartLine *int64 `protobuf:"varint,4,opt,name=start_line,json=startLine,proto3,oneof" json:"start_line,omitempty"`
	// side is the provider diff side, for example LEFT or RIGHT.
	Side *string `protobuf:"bytes,5,opt,name=side,proto3,oneof" json:"side,omitempty"`
	// start_side is the provider diff side for start_line when needed.
	StartSide *string `protobuf:"bytes,6,opt,name=start_side,json=startSide,proto3,oneof" json:"start_side,omitempty"`
	// in_reply_to_provider_comment_id replies to an existing provider inline comment thread.
	InReplyToProviderCommentId *string `protobuf:"bytes,7,opt,name=in_reply_to_provider_comment_id,json=inReplyToProviderCommentId,proto3,oneof" json:"in_reply_to_provider_comment_id,omitempty"`
	unknownFields              protoimpl.UnknownFields
	sizeCache                  protoimpl.SizeCache
}

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

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

func (*ReviewInlineComment) ProtoMessage() {}

func (x *ReviewInlineComment) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_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 ReviewInlineComment.ProtoReflect.Descriptor instead.
func (*ReviewInlineComment) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{9}
}

func (x *ReviewInlineComment) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *ReviewInlineComment) GetBody() string {
	if x != nil {
		return x.Body
	}
	return ""
}

func (x *ReviewInlineComment) GetLine() int64 {
	if x != nil && x.Line != nil {
		return *x.Line
	}
	return 0
}

func (x *ReviewInlineComment) GetStartLine() int64 {
	if x != nil && x.StartLine != nil {
		return *x.StartLine
	}
	return 0
}

func (x *ReviewInlineComment) GetSide() string {
	if x != nil && x.Side != nil {
		return *x.Side
	}
	return ""
}

func (x *ReviewInlineComment) GetStartSide() string {
	if x != nil && x.StartSide != nil {
		return *x.StartSide
	}
	return ""
}

func (x *ReviewInlineComment) GetInReplyToProviderCommentId() string {
	if x != nil && x.InReplyToProviderCommentId != nil {
		return *x.InReplyToProviderCommentId
	}
	return ""
}

// ProviderTarget identifies a provider-native object.
type ProviderTarget struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_slug is an extensible provider identifier such as github or gitlab.
	ProviderSlug string `protobuf:"bytes,1,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// repository_full_name is owner/name or provider equivalent.
	RepositoryFullName *string `protobuf:"bytes,2,opt,name=repository_full_name,json=repositoryFullName,proto3,oneof" json:"repository_full_name,omitempty"`
	// provider_repository_id is the provider-native repository id when available.
	ProviderRepositoryId *string `protobuf:"bytes,3,opt,name=provider_repository_id,json=providerRepositoryId,proto3,oneof" json:"provider_repository_id,omitempty"`
	// work_item_kind identifies Issue, PR or MR target.
	WorkItemKind *WorkItemKind `protobuf:"varint,4,opt,name=work_item_kind,json=workItemKind,proto3,enum=kodex.providers.v1.WorkItemKind,oneof" json:"work_item_kind,omitempty"`
	// number is the provider-native issue or PR/MR number.
	Number *int64 `protobuf:"varint,5,opt,name=number,proto3,oneof" json:"number,omitempty"`
	// provider_object_id is the provider-native stable object id.
	ProviderObjectId *string `protobuf:"bytes,6,opt,name=provider_object_id,json=providerObjectId,proto3,oneof" json:"provider_object_id,omitempty"`
	// web_url is the safe provider URL when caller only has a URL.
	WebUrl        *string `protobuf:"bytes,7,opt,name=web_url,json=webUrl,proto3,oneof" json:"web_url,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ProviderTarget) Reset() {
	*x = ProviderTarget{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProviderTarget) ProtoMessage() {}

func (x *ProviderTarget) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[10]
	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 ProviderTarget.ProtoReflect.Descriptor instead.
func (*ProviderTarget) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{10}
}

func (x *ProviderTarget) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *ProviderTarget) GetRepositoryFullName() string {
	if x != nil && x.RepositoryFullName != nil {
		return *x.RepositoryFullName
	}
	return ""
}

func (x *ProviderTarget) GetProviderRepositoryId() string {
	if x != nil && x.ProviderRepositoryId != nil {
		return *x.ProviderRepositoryId
	}
	return ""
}

func (x *ProviderTarget) GetWorkItemKind() WorkItemKind {
	if x != nil && x.WorkItemKind != nil {
		return *x.WorkItemKind
	}
	return WorkItemKind_WORK_ITEM_KIND_UNSPECIFIED
}

func (x *ProviderTarget) GetNumber() int64 {
	if x != nil && x.Number != nil {
		return *x.Number
	}
	return 0
}

func (x *ProviderTarget) GetProviderObjectId() string {
	if x != nil && x.ProviderObjectId != nil {
		return *x.ProviderObjectId
	}
	return ""
}

func (x *ProviderTarget) GetWebUrl() string {
	if x != nil && x.WebUrl != nil {
		return *x.WebUrl
	}
	return ""
}

// WebhookEvent is stored webhook inbox metadata accepted from the edge gateway.
type WebhookEvent struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// webhook_event_id is the stored webhook id.
	WebhookEventId string `protobuf:"bytes,1,opt,name=webhook_event_id,json=webhookEventId,proto3" json:"webhook_event_id,omitempty"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,2,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// delivery_id is the provider delivery id used for deduplication.
	DeliveryId string `protobuf:"bytes,3,opt,name=delivery_id,json=deliveryId,proto3" json:"delivery_id,omitempty"`
	// event_name is the provider event name.
	EventName string `protobuf:"bytes,4,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"`
	// repository_provider_id is the provider-native repository id when present.
	RepositoryProviderId *string `protobuf:"bytes,5,opt,name=repository_provider_id,json=repositoryProviderId,proto3,oneof" json:"repository_provider_id,omitempty"`
	// received_at is the receive time in RFC3339 format.
	ReceivedAt string `protobuf:"bytes,6,opt,name=received_at,json=receivedAt,proto3" json:"received_at,omitempty"`
	// processing_status is raw webhook processing status.
	ProcessingStatus WebhookProcessingStatus `protobuf:"varint,7,opt,name=processing_status,json=processingStatus,proto3,enum=kodex.providers.v1.WebhookProcessingStatus" json:"processing_status,omitempty"`
	// payload_json is a safe envelope with payload storage status and digest.
	// Raw provider payload is never returned by read RPCs.
	PayloadJson string `protobuf:"bytes,8,opt,name=payload_json,json=payloadJson,proto3" json:"payload_json,omitempty"`
	// last_error is a short processing error without secrets.
	LastError *string `protobuf:"bytes,9,opt,name=last_error,json=lastError,proto3,oneof" json:"last_error,omitempty"`
	// retain_until is the payload retention deadline in RFC3339 format.
	RetainUntil string `protobuf:"bytes,10,opt,name=retain_until,json=retainUntil,proto3" json:"retain_until,omitempty"`
	// payload_sha256 is the digest of the canonical provider payload when known.
	PayloadSha256 string `protobuf:"bytes,11,opt,name=payload_sha256,json=payloadSha256,proto3" json:"payload_sha256,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *WebhookEvent) Reset() {
	*x = WebhookEvent{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*WebhookEvent) ProtoMessage() {}

func (x *WebhookEvent) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[11]
	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 WebhookEvent.ProtoReflect.Descriptor instead.
func (*WebhookEvent) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{11}
}

func (x *WebhookEvent) GetWebhookEventId() string {
	if x != nil {
		return x.WebhookEventId
	}
	return ""
}

func (x *WebhookEvent) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *WebhookEvent) GetDeliveryId() string {
	if x != nil {
		return x.DeliveryId
	}
	return ""
}

func (x *WebhookEvent) GetEventName() string {
	if x != nil {
		return x.EventName
	}
	return ""
}

func (x *WebhookEvent) GetRepositoryProviderId() string {
	if x != nil && x.RepositoryProviderId != nil {
		return *x.RepositoryProviderId
	}
	return ""
}

func (x *WebhookEvent) GetReceivedAt() string {
	if x != nil {
		return x.ReceivedAt
	}
	return ""
}

func (x *WebhookEvent) GetProcessingStatus() WebhookProcessingStatus {
	if x != nil {
		return x.ProcessingStatus
	}
	return WebhookProcessingStatus_WEBHOOK_PROCESSING_STATUS_UNSPECIFIED
}

func (x *WebhookEvent) GetPayloadJson() string {
	if x != nil {
		return x.PayloadJson
	}
	return ""
}

func (x *WebhookEvent) GetLastError() string {
	if x != nil && x.LastError != nil {
		return *x.LastError
	}
	return ""
}

func (x *WebhookEvent) GetRetainUntil() string {
	if x != nil {
		return x.RetainUntil
	}
	return ""
}

func (x *WebhookEvent) GetPayloadSha256() string {
	if x != nil {
		return x.PayloadSha256
	}
	return ""
}

// ProviderEvent is a normalized event produced from webhook or reconciliation.
type ProviderEvent struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_event_id is the normalized event id.
	ProviderEventId string `protobuf:"bytes,1,opt,name=provider_event_id,json=providerEventId,proto3" json:"provider_event_id,omitempty"`
	// source_webhook_event_id links a raw webhook inside provider-hub when available.
	SourceWebhookEventId *string `protobuf:"bytes,2,opt,name=source_webhook_event_id,json=sourceWebhookEventId,proto3,oneof" json:"source_webhook_event_id,omitempty"`
	// event_type is the normalized provider event type.
	EventType string `protobuf:"bytes,3,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
	// aggregate_type is the normalized aggregate type.
	AggregateType string `protobuf:"bytes,4,opt,name=aggregate_type,json=aggregateType,proto3" json:"aggregate_type,omitempty"`
	// aggregate_id identifies the changed provider aggregate.
	AggregateId string `protobuf:"bytes,5,opt,name=aggregate_id,json=aggregateId,proto3" json:"aggregate_id,omitempty"`
	// payload_json is typed event payload serialized by provider-hub.
	PayloadJson string `protobuf:"bytes,6,opt,name=payload_json,json=payloadJson,proto3" json:"payload_json,omitempty"`
	// occurred_at is the provider change time in RFC3339 format.
	OccurredAt    string `protobuf:"bytes,7,opt,name=occurred_at,json=occurredAt,proto3" json:"occurred_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ProviderEvent) Reset() {
	*x = ProviderEvent{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProviderEvent) ProtoMessage() {}

func (x *ProviderEvent) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[12]
	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 ProviderEvent.ProtoReflect.Descriptor instead.
func (*ProviderEvent) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{12}
}

func (x *ProviderEvent) GetProviderEventId() string {
	if x != nil {
		return x.ProviderEventId
	}
	return ""
}

func (x *ProviderEvent) GetSourceWebhookEventId() string {
	if x != nil && x.SourceWebhookEventId != nil {
		return *x.SourceWebhookEventId
	}
	return ""
}

func (x *ProviderEvent) GetEventType() string {
	if x != nil {
		return x.EventType
	}
	return ""
}

func (x *ProviderEvent) GetAggregateType() string {
	if x != nil {
		return x.AggregateType
	}
	return ""
}

func (x *ProviderEvent) GetAggregateId() string {
	if x != nil {
		return x.AggregateId
	}
	return ""
}

func (x *ProviderEvent) GetPayloadJson() string {
	if x != nil {
		return x.PayloadJson
	}
	return ""
}

func (x *ProviderEvent) GetOccurredAt() string {
	if x != nil {
		return x.OccurredAt
	}
	return ""
}

// WorkItemProjection is a normalized Issue or PR/MR mirror.
type WorkItemProjection struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// work_item_projection_id is the internal projection id.
	WorkItemProjectionId string `protobuf:"bytes,1,opt,name=work_item_projection_id,json=workItemProjectionId,proto3" json:"work_item_projection_id,omitempty"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,2,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// provider_work_item_id is the provider-native stable work item id.
	ProviderWorkItemId string `protobuf:"bytes,3,opt,name=provider_work_item_id,json=providerWorkItemId,proto3" json:"provider_work_item_id,omitempty"`
	// project_id links project-catalog when known.
	ProjectId *string `protobuf:"bytes,4,opt,name=project_id,json=projectId,proto3,oneof" json:"project_id,omitempty"`
	// repository_id links project-catalog repository binding when known.
	RepositoryId *string `protobuf:"bytes,5,opt,name=repository_id,json=repositoryId,proto3,oneof" json:"repository_id,omitempty"`
	// repository_full_name is owner/name or provider equivalent.
	RepositoryFullName string `protobuf:"bytes,6,opt,name=repository_full_name,json=repositoryFullName,proto3" json:"repository_full_name,omitempty"`
	// kind classifies Issue, PR or MR.
	Kind WorkItemKind `protobuf:"varint,7,opt,name=kind,proto3,enum=kodex.providers.v1.WorkItemKind" json:"kind,omitempty"`
	// number is the provider-native issue or PR/MR number.
	Number int64 `protobuf:"varint,8,opt,name=number,proto3" json:"number,omitempty"`
	// web_url is a safe provider URL.
	WebUrl string `protobuf:"bytes,9,opt,name=web_url,json=webUrl,proto3" json:"web_url,omitempty"`
	// title is current provider title.
	Title string `protobuf:"bytes,10,opt,name=title,proto3" json:"title,omitempty"`
	// state is provider-normalized lifecycle state.
	State string `protobuf:"bytes,11,opt,name=state,proto3" json:"state,omitempty"`
	// work_item_type is a platform task type parsed from provider fields or watermark.
	WorkItemType *string `protobuf:"bytes,12,opt,name=work_item_type,json=workItemType,proto3,oneof" json:"work_item_type,omitempty"`
	// labels are normalized label names.
	Labels []string `protobuf:"bytes,13,rep,name=labels,proto3" json:"labels,omitempty"`
	// assignee_provider_logins are provider logins assigned to the work item.
	AssigneeProviderLogins []string `protobuf:"bytes,14,rep,name=assignee_provider_logins,json=assigneeProviderLogins,proto3" json:"assignee_provider_logins,omitempty"`
	// milestone is normalized milestone text when available.
	Milestone *string `protobuf:"bytes,15,opt,name=milestone,proto3,oneof" json:"milestone,omitempty"`
	// project_fields_json contains normalized provider project fields required by platform.
	ProjectFieldsJson string `protobuf:"bytes,16,opt,name=project_fields_json,json=projectFieldsJson,proto3" json:"project_fields_json,omitempty"`
	// watermark_status is parsed platform watermark state.
	WatermarkStatus WorkItemWatermarkStatus `protobuf:"varint,17,opt,name=watermark_status,json=watermarkStatus,proto3,enum=kodex.providers.v1.WorkItemWatermarkStatus" json:"watermark_status,omitempty"`
	// watermark_json is parsed platform watermark payload.
	WatermarkJson string `protobuf:"bytes,18,opt,name=watermark_json,json=watermarkJson,proto3" json:"watermark_json,omitempty"`
	// body_digest is a digest of provider body used for drift checks.
	BodyDigest string `protobuf:"bytes,19,opt,name=body_digest,json=bodyDigest,proto3" json:"body_digest,omitempty"`
	// provider_updated_at is provider update time in RFC3339 format when available.
	ProviderUpdatedAt *string `protobuf:"bytes,20,opt,name=provider_updated_at,json=providerUpdatedAt,proto3,oneof" json:"provider_updated_at,omitempty"`
	// synced_at is last successful sync time in RFC3339 format.
	SyncedAt string `protobuf:"bytes,21,opt,name=synced_at,json=syncedAt,proto3" json:"synced_at,omitempty"`
	// drift_status is projection freshness state.
	DriftStatus WorkItemDriftStatus `protobuf:"varint,22,opt,name=drift_status,json=driftStatus,proto3,enum=kodex.providers.v1.WorkItemDriftStatus" json:"drift_status,omitempty"`
	// version is the projection version.
	Version       int64 `protobuf:"varint,23,opt,name=version,proto3" json:"version,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *WorkItemProjection) Reset() {
	*x = WorkItemProjection{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*WorkItemProjection) ProtoMessage() {}

func (x *WorkItemProjection) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[13]
	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 WorkItemProjection.ProtoReflect.Descriptor instead.
func (*WorkItemProjection) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{13}
}

func (x *WorkItemProjection) GetWorkItemProjectionId() string {
	if x != nil {
		return x.WorkItemProjectionId
	}
	return ""
}

func (x *WorkItemProjection) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *WorkItemProjection) GetProviderWorkItemId() string {
	if x != nil {
		return x.ProviderWorkItemId
	}
	return ""
}

func (x *WorkItemProjection) GetProjectId() string {
	if x != nil && x.ProjectId != nil {
		return *x.ProjectId
	}
	return ""
}

func (x *WorkItemProjection) GetRepositoryId() string {
	if x != nil && x.RepositoryId != nil {
		return *x.RepositoryId
	}
	return ""
}

func (x *WorkItemProjection) GetRepositoryFullName() string {
	if x != nil {
		return x.RepositoryFullName
	}
	return ""
}

func (x *WorkItemProjection) GetKind() WorkItemKind {
	if x != nil {
		return x.Kind
	}
	return WorkItemKind_WORK_ITEM_KIND_UNSPECIFIED
}

func (x *WorkItemProjection) GetNumber() int64 {
	if x != nil {
		return x.Number
	}
	return 0
}

func (x *WorkItemProjection) GetWebUrl() string {
	if x != nil {
		return x.WebUrl
	}
	return ""
}

func (x *WorkItemProjection) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *WorkItemProjection) GetState() string {
	if x != nil {
		return x.State
	}
	return ""
}

func (x *WorkItemProjection) GetWorkItemType() string {
	if x != nil && x.WorkItemType != nil {
		return *x.WorkItemType
	}
	return ""
}

func (x *WorkItemProjection) GetLabels() []string {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *WorkItemProjection) GetAssigneeProviderLogins() []string {
	if x != nil {
		return x.AssigneeProviderLogins
	}
	return nil
}

func (x *WorkItemProjection) GetMilestone() string {
	if x != nil && x.Milestone != nil {
		return *x.Milestone
	}
	return ""
}

func (x *WorkItemProjection) GetProjectFieldsJson() string {
	if x != nil {
		return x.ProjectFieldsJson
	}
	return ""
}

func (x *WorkItemProjection) GetWatermarkStatus() WorkItemWatermarkStatus {
	if x != nil {
		return x.WatermarkStatus
	}
	return WorkItemWatermarkStatus_WORK_ITEM_WATERMARK_STATUS_UNSPECIFIED
}

func (x *WorkItemProjection) GetWatermarkJson() string {
	if x != nil {
		return x.WatermarkJson
	}
	return ""
}

func (x *WorkItemProjection) GetBodyDigest() string {
	if x != nil {
		return x.BodyDigest
	}
	return ""
}

func (x *WorkItemProjection) GetProviderUpdatedAt() string {
	if x != nil && x.ProviderUpdatedAt != nil {
		return *x.ProviderUpdatedAt
	}
	return ""
}

func (x *WorkItemProjection) GetSyncedAt() string {
	if x != nil {
		return x.SyncedAt
	}
	return ""
}

func (x *WorkItemProjection) GetDriftStatus() WorkItemDriftStatus {
	if x != nil {
		return x.DriftStatus
	}
	return WorkItemDriftStatus_WORK_ITEM_DRIFT_STATUS_UNSPECIFIED
}

func (x *WorkItemProjection) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

// CommentProjection is a normalized comment, mention or review signal.
type CommentProjection struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// comment_projection_id is the internal projection id.
	CommentProjectionId string `protobuf:"bytes,1,opt,name=comment_projection_id,json=commentProjectionId,proto3" json:"comment_projection_id,omitempty"`
	// work_item_projection_id links the owning work item projection.
	WorkItemProjectionId string `protobuf:"bytes,2,opt,name=work_item_projection_id,json=workItemProjectionId,proto3" json:"work_item_projection_id,omitempty"`
	// provider_comment_id is the provider-native comment id.
	ProviderCommentId string `protobuf:"bytes,3,opt,name=provider_comment_id,json=providerCommentId,proto3" json:"provider_comment_id,omitempty"`
	// kind classifies the comment-like record.
	Kind CommentKind `protobuf:"varint,4,opt,name=kind,proto3,enum=kodex.providers.v1.CommentKind" json:"kind,omitempty"`
	// author_provider_login is provider login of the author.
	AuthorProviderLogin string `protobuf:"bytes,5,opt,name=author_provider_login,json=authorProviderLogin,proto3" json:"author_provider_login,omitempty"`
	// body_digest is a digest of comment body.
	BodyDigest string `protobuf:"bytes,6,opt,name=body_digest,json=bodyDigest,proto3" json:"body_digest,omitempty"`
	// summary is a short safe excerpt for UI.
	Summary string `protobuf:"bytes,7,opt,name=summary,proto3" json:"summary,omitempty"`
	// provider_created_at is provider creation time in RFC3339 format when available.
	ProviderCreatedAt *string `protobuf:"bytes,8,opt,name=provider_created_at,json=providerCreatedAt,proto3,oneof" json:"provider_created_at,omitempty"`
	// provider_updated_at is provider update time in RFC3339 format when available.
	ProviderUpdatedAt *string `protobuf:"bytes,9,opt,name=provider_updated_at,json=providerUpdatedAt,proto3,oneof" json:"provider_updated_at,omitempty"`
	// review_state is present for provider-native review decision records.
	ReviewState   ReviewState `protobuf:"varint,10,opt,name=review_state,json=reviewState,proto3,enum=kodex.providers.v1.ReviewState" json:"review_state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CommentProjection) Reset() {
	*x = CommentProjection{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CommentProjection) ProtoMessage() {}

func (x *CommentProjection) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[14]
	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 CommentProjection.ProtoReflect.Descriptor instead.
func (*CommentProjection) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{14}
}

func (x *CommentProjection) GetCommentProjectionId() string {
	if x != nil {
		return x.CommentProjectionId
	}
	return ""
}

func (x *CommentProjection) GetWorkItemProjectionId() string {
	if x != nil {
		return x.WorkItemProjectionId
	}
	return ""
}

func (x *CommentProjection) GetProviderCommentId() string {
	if x != nil {
		return x.ProviderCommentId
	}
	return ""
}

func (x *CommentProjection) GetKind() CommentKind {
	if x != nil {
		return x.Kind
	}
	return CommentKind_COMMENT_KIND_UNSPECIFIED
}

func (x *CommentProjection) GetAuthorProviderLogin() string {
	if x != nil {
		return x.AuthorProviderLogin
	}
	return ""
}

func (x *CommentProjection) GetBodyDigest() string {
	if x != nil {
		return x.BodyDigest
	}
	return ""
}

func (x *CommentProjection) GetSummary() string {
	if x != nil {
		return x.Summary
	}
	return ""
}

func (x *CommentProjection) GetProviderCreatedAt() string {
	if x != nil && x.ProviderCreatedAt != nil {
		return *x.ProviderCreatedAt
	}
	return ""
}

func (x *CommentProjection) GetProviderUpdatedAt() string {
	if x != nil && x.ProviderUpdatedAt != nil {
		return *x.ProviderUpdatedAt
	}
	return ""
}

func (x *CommentProjection) GetReviewState() ReviewState {
	if x != nil {
		return x.ReviewState
	}
	return ReviewState_REVIEW_STATE_UNSPECIFIED
}

// ProviderRelationship is a normalized relationship between provider-native objects.
type ProviderRelationship struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// relationship_id is the relationship id.
	RelationshipId string `protobuf:"bytes,1,opt,name=relationship_id,json=relationshipId,proto3" json:"relationship_id,omitempty"`
	// source_work_item_projection_id is the source projection id.
	SourceWorkItemProjectionId string `protobuf:"bytes,2,opt,name=source_work_item_projection_id,json=sourceWorkItemProjectionId,proto3" json:"source_work_item_projection_id,omitempty"`
	// target_work_item_projection_id is present when target projection is known.
	TargetWorkItemProjectionId *string `protobuf:"bytes,3,opt,name=target_work_item_projection_id,json=targetWorkItemProjectionId,proto3,oneof" json:"target_work_item_projection_id,omitempty"`
	// target_provider_ref is URL or provider ref when target projection is not known yet.
	TargetProviderRef *string `protobuf:"bytes,4,opt,name=target_provider_ref,json=targetProviderRef,proto3,oneof" json:"target_provider_ref,omitempty"`
	// relationship_type is an extensible normalized relationship type.
	RelationshipType string `protobuf:"bytes,5,opt,name=relationship_type,json=relationshipType,proto3" json:"relationship_type,omitempty"`
	// source classifies where the relationship came from.
	Source RelationshipSource `protobuf:"varint,6,opt,name=source,proto3,enum=kodex.providers.v1.RelationshipSource" json:"source,omitempty"`
	// confidence describes how reliable the relationship is.
	Confidence RelationshipConfidence `protobuf:"varint,7,opt,name=confidence,proto3,enum=kodex.providers.v1.RelationshipConfidence" json:"confidence,omitempty"`
	// created_at is creation time in RFC3339 format.
	CreatedAt string `protobuf:"bytes,8,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// version is the local relationship version for optimistic concurrency.
	Version       int64 `protobuf:"varint,9,opt,name=version,proto3" json:"version,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ProviderRelationship) Reset() {
	*x = ProviderRelationship{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProviderRelationship) ProtoMessage() {}

func (x *ProviderRelationship) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[15]
	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 ProviderRelationship.ProtoReflect.Descriptor instead.
func (*ProviderRelationship) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{15}
}

func (x *ProviderRelationship) GetRelationshipId() string {
	if x != nil {
		return x.RelationshipId
	}
	return ""
}

func (x *ProviderRelationship) GetSourceWorkItemProjectionId() string {
	if x != nil {
		return x.SourceWorkItemProjectionId
	}
	return ""
}

func (x *ProviderRelationship) GetTargetWorkItemProjectionId() string {
	if x != nil && x.TargetWorkItemProjectionId != nil {
		return *x.TargetWorkItemProjectionId
	}
	return ""
}

func (x *ProviderRelationship) GetTargetProviderRef() string {
	if x != nil && x.TargetProviderRef != nil {
		return *x.TargetProviderRef
	}
	return ""
}

func (x *ProviderRelationship) GetRelationshipType() string {
	if x != nil {
		return x.RelationshipType
	}
	return ""
}

func (x *ProviderRelationship) GetSource() RelationshipSource {
	if x != nil {
		return x.Source
	}
	return RelationshipSource_RELATIONSHIP_SOURCE_UNSPECIFIED
}

func (x *ProviderRelationship) GetConfidence() RelationshipConfidence {
	if x != nil {
		return x.Confidence
	}
	return RelationshipConfidence_RELATIONSHIP_CONFIDENCE_UNSPECIFIED
}

func (x *ProviderRelationship) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *ProviderRelationship) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

// SyncCursor stores reconciliation state for one provider scope.
type SyncCursor struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// sync_cursor_id is the cursor id.
	SyncCursorId string `protobuf:"bytes,1,opt,name=sync_cursor_id,json=syncCursorId,proto3" json:"sync_cursor_id,omitempty"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,2,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// external_account_id is the selected external account confirmed through access-manager before provider API use.
	ExternalAccountId string `protobuf:"bytes,15,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	// scope_type classifies reconciliation scope.
	ScopeType SyncCursorScopeType `protobuf:"varint,3,opt,name=scope_type,json=scopeType,proto3,enum=kodex.providers.v1.SyncCursorScopeType" json:"scope_type,omitempty"`
	// scope_ref is the provider scope reference.
	ScopeRef string `protobuf:"bytes,4,opt,name=scope_ref,json=scopeRef,proto3" json:"scope_ref,omitempty"`
	// artifact_kind classifies synchronized artifact kind.
	ArtifactKind SyncArtifactKind `protobuf:"varint,5,opt,name=artifact_kind,json=artifactKind,proto3,enum=kodex.providers.v1.SyncArtifactKind" json:"artifact_kind,omitempty"`
	// cursor_value is provider cursor or timestamp marker.
	CursorValue *string `protobuf:"bytes,6,opt,name=cursor_value,json=cursorValue,proto3,oneof" json:"cursor_value,omitempty"`
	// overlap_since is the overlap window start in RFC3339 format.
	OverlapSince *string `protobuf:"bytes,7,opt,name=overlap_since,json=overlapSince,proto3,oneof" json:"overlap_since,omitempty"`
	// priority classifies reconciliation urgency.
	Priority SyncCursorPriority `protobuf:"varint,8,opt,name=priority,proto3,enum=kodex.providers.v1.SyncCursorPriority" json:"priority,omitempty"`
	// last_success_at is last successful sync time in RFC3339 format.
	LastSuccessAt *string `protobuf:"bytes,9,opt,name=last_success_at,json=lastSuccessAt,proto3,oneof" json:"last_success_at,omitempty"`
	// last_checked_at is last attempt time in RFC3339 format.
	LastCheckedAt *string `protobuf:"bytes,10,opt,name=last_checked_at,json=lastCheckedAt,proto3,oneof" json:"last_checked_at,omitempty"`
	// last_error is a short error without secrets.
	LastError *string `protobuf:"bytes,11,opt,name=last_error,json=lastError,proto3,oneof" json:"last_error,omitempty"`
	// rate_budget_state_json is the known rate budget state.
	RateBudgetStateJson string `protobuf:"bytes,12,opt,name=rate_budget_state_json,json=rateBudgetStateJson,proto3" json:"rate_budget_state_json,omitempty"`
	// lease_owner is current lease owner when leased.
	LeaseOwner *string `protobuf:"bytes,13,opt,name=lease_owner,json=leaseOwner,proto3,oneof" json:"lease_owner,omitempty"`
	// lease_until is the lease deadline in RFC3339 format.
	LeaseUntil    *string `protobuf:"bytes,14,opt,name=lease_until,json=leaseUntil,proto3,oneof" json:"lease_until,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SyncCursor) Reset() {
	*x = SyncCursor{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SyncCursor) ProtoMessage() {}

func (x *SyncCursor) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[16]
	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 SyncCursor.ProtoReflect.Descriptor instead.
func (*SyncCursor) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{16}
}

func (x *SyncCursor) GetSyncCursorId() string {
	if x != nil {
		return x.SyncCursorId
	}
	return ""
}

func (x *SyncCursor) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *SyncCursor) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

func (x *SyncCursor) GetScopeType() SyncCursorScopeType {
	if x != nil {
		return x.ScopeType
	}
	return SyncCursorScopeType_SYNC_CURSOR_SCOPE_TYPE_UNSPECIFIED
}

func (x *SyncCursor) GetScopeRef() string {
	if x != nil {
		return x.ScopeRef
	}
	return ""
}

func (x *SyncCursor) GetArtifactKind() SyncArtifactKind {
	if x != nil {
		return x.ArtifactKind
	}
	return SyncArtifactKind_SYNC_ARTIFACT_KIND_UNSPECIFIED
}

func (x *SyncCursor) GetCursorValue() string {
	if x != nil && x.CursorValue != nil {
		return *x.CursorValue
	}
	return ""
}

func (x *SyncCursor) GetOverlapSince() string {
	if x != nil && x.OverlapSince != nil {
		return *x.OverlapSince
	}
	return ""
}

func (x *SyncCursor) GetPriority() SyncCursorPriority {
	if x != nil {
		return x.Priority
	}
	return SyncCursorPriority_SYNC_CURSOR_PRIORITY_UNSPECIFIED
}

func (x *SyncCursor) GetLastSuccessAt() string {
	if x != nil && x.LastSuccessAt != nil {
		return *x.LastSuccessAt
	}
	return ""
}

func (x *SyncCursor) GetLastCheckedAt() string {
	if x != nil && x.LastCheckedAt != nil {
		return *x.LastCheckedAt
	}
	return ""
}

func (x *SyncCursor) GetLastError() string {
	if x != nil && x.LastError != nil {
		return *x.LastError
	}
	return ""
}

func (x *SyncCursor) GetRateBudgetStateJson() string {
	if x != nil {
		return x.RateBudgetStateJson
	}
	return ""
}

func (x *SyncCursor) GetLeaseOwner() string {
	if x != nil && x.LeaseOwner != nil {
		return *x.LeaseOwner
	}
	return ""
}

func (x *SyncCursor) GetLeaseUntil() string {
	if x != nil && x.LeaseUntil != nil {
		return *x.LeaseUntil
	}
	return ""
}

// ProviderAccountRuntimeState is the operational state of an external account at provider.
type ProviderAccountRuntimeState struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_account_runtime_state_id is the runtime state id.
	ProviderAccountRuntimeStateId string `protobuf:"bytes,1,opt,name=provider_account_runtime_state_id,json=providerAccountRuntimeStateId,proto3" json:"provider_account_runtime_state_id,omitempty"`
	// external_account_id links access-manager external account.
	ExternalAccountId string `protobuf:"bytes,2,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// status is provider runtime state.
	Status ProviderAccountRuntimeStatus `protobuf:"varint,4,opt,name=status,proto3,enum=kodex.providers.v1.ProviderAccountRuntimeStatus" json:"status,omitempty"`
	// last_checked_at is last check time in RFC3339 format.
	LastCheckedAt *string `protobuf:"bytes,5,opt,name=last_checked_at,json=lastCheckedAt,proto3,oneof" json:"last_checked_at,omitempty"`
	// last_success_at is last successful operation time in RFC3339 format.
	LastSuccessAt *string `protobuf:"bytes,6,opt,name=last_success_at,json=lastSuccessAt,proto3,oneof" json:"last_success_at,omitempty"`
	// last_error_code is a provider error classification.
	LastErrorCode *string `protobuf:"bytes,7,opt,name=last_error_code,json=lastErrorCode,proto3,oneof" json:"last_error_code,omitempty"`
	// last_error_message is a short error without secrets.
	LastErrorMessage *string `protobuf:"bytes,8,opt,name=last_error_message,json=lastErrorMessage,proto3,oneof" json:"last_error_message,omitempty"`
	// version is the runtime state version.
	Version       int64 `protobuf:"varint,9,opt,name=version,proto3" json:"version,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ProviderAccountRuntimeState) Reset() {
	*x = ProviderAccountRuntimeState{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProviderAccountRuntimeState) ProtoMessage() {}

func (x *ProviderAccountRuntimeState) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[17]
	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 ProviderAccountRuntimeState.ProtoReflect.Descriptor instead.
func (*ProviderAccountRuntimeState) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{17}
}

func (x *ProviderAccountRuntimeState) GetProviderAccountRuntimeStateId() string {
	if x != nil {
		return x.ProviderAccountRuntimeStateId
	}
	return ""
}

func (x *ProviderAccountRuntimeState) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

func (x *ProviderAccountRuntimeState) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *ProviderAccountRuntimeState) GetStatus() ProviderAccountRuntimeStatus {
	if x != nil {
		return x.Status
	}
	return ProviderAccountRuntimeStatus_PROVIDER_ACCOUNT_RUNTIME_STATUS_UNSPECIFIED
}

func (x *ProviderAccountRuntimeState) GetLastCheckedAt() string {
	if x != nil && x.LastCheckedAt != nil {
		return *x.LastCheckedAt
	}
	return ""
}

func (x *ProviderAccountRuntimeState) GetLastSuccessAt() string {
	if x != nil && x.LastSuccessAt != nil {
		return *x.LastSuccessAt
	}
	return ""
}

func (x *ProviderAccountRuntimeState) GetLastErrorCode() string {
	if x != nil && x.LastErrorCode != nil {
		return *x.LastErrorCode
	}
	return ""
}

func (x *ProviderAccountRuntimeState) GetLastErrorMessage() string {
	if x != nil && x.LastErrorMessage != nil {
		return *x.LastErrorMessage
	}
	return ""
}

func (x *ProviderAccountRuntimeState) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

// ProviderLimitSnapshot is a known provider limit state.
type ProviderLimitSnapshot struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_limit_snapshot_id is the snapshot id.
	ProviderLimitSnapshotId string `protobuf:"bytes,1,opt,name=provider_limit_snapshot_id,json=providerLimitSnapshotId,proto3" json:"provider_limit_snapshot_id,omitempty"`
	// external_account_id links access-manager external account.
	ExternalAccountId string `protobuf:"bytes,2,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// limit_class is provider limit class such as core, graphql or search.
	LimitClass string `protobuf:"bytes,4,opt,name=limit_class,json=limitClass,proto3" json:"limit_class,omitempty"`
	// remaining is remaining budget when known.
	Remaining *int64 `protobuf:"varint,5,opt,name=remaining,proto3,oneof" json:"remaining,omitempty"`
	// limit_value is total budget when known.
	LimitValue *int64 `protobuf:"varint,6,opt,name=limit_value,json=limitValue,proto3,oneof" json:"limit_value,omitempty"`
	// reset_at is reset time in RFC3339 format when known.
	ResetAt *string `protobuf:"bytes,7,opt,name=reset_at,json=resetAt,proto3,oneof" json:"reset_at,omitempty"`
	// captured_at is snapshot time in RFC3339 format.
	CapturedAt string `protobuf:"bytes,8,opt,name=captured_at,json=capturedAt,proto3" json:"captured_at,omitempty"`
	// source identifies who recorded the snapshot.
	Source        string `protobuf:"bytes,9,opt,name=source,proto3" json:"source,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ProviderLimitSnapshot) Reset() {
	*x = ProviderLimitSnapshot{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProviderLimitSnapshot) ProtoMessage() {}

func (x *ProviderLimitSnapshot) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[18]
	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 ProviderLimitSnapshot.ProtoReflect.Descriptor instead.
func (*ProviderLimitSnapshot) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{18}
}

func (x *ProviderLimitSnapshot) GetProviderLimitSnapshotId() string {
	if x != nil {
		return x.ProviderLimitSnapshotId
	}
	return ""
}

func (x *ProviderLimitSnapshot) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

func (x *ProviderLimitSnapshot) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *ProviderLimitSnapshot) GetLimitClass() string {
	if x != nil {
		return x.LimitClass
	}
	return ""
}

func (x *ProviderLimitSnapshot) GetRemaining() int64 {
	if x != nil && x.Remaining != nil {
		return *x.Remaining
	}
	return 0
}

func (x *ProviderLimitSnapshot) GetLimitValue() int64 {
	if x != nil && x.LimitValue != nil {
		return *x.LimitValue
	}
	return 0
}

func (x *ProviderLimitSnapshot) GetResetAt() string {
	if x != nil && x.ResetAt != nil {
		return *x.ResetAt
	}
	return ""
}

func (x *ProviderLimitSnapshot) GetCapturedAt() string {
	if x != nil {
		return x.CapturedAt
	}
	return ""
}

func (x *ProviderLimitSnapshot) GetSource() string {
	if x != nil {
		return x.Source
	}
	return ""
}

// ProviderOperation is an audited provider operation.
type ProviderOperation struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_operation_id is the operation id.
	ProviderOperationId string `protobuf:"bytes,1,opt,name=provider_operation_id,json=providerOperationId,proto3" json:"provider_operation_id,omitempty"`
	// command_id is the idempotent command id.
	CommandId string `protobuf:"bytes,2,opt,name=command_id,json=commandId,proto3" json:"command_id,omitempty"`
	// actor_id is the platform actor id when known.
	ActorId *string `protobuf:"bytes,3,opt,name=actor_id,json=actorId,proto3,oneof" json:"actor_id,omitempty"`
	// external_account_id links access-manager external account.
	ExternalAccountId string `protobuf:"bytes,4,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,5,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// operation_type classifies the operation.
	OperationType ProviderOperationType `protobuf:"varint,6,opt,name=operation_type,json=operationType,proto3,enum=kodex.providers.v1.ProviderOperationType" json:"operation_type,omitempty"`
	// target_ref identifies provider target.
	TargetRef string `protobuf:"bytes,7,opt,name=target_ref,json=targetRef,proto3" json:"target_ref,omitempty"`
	// status is execution status.
	Status ProviderOperationStatus `protobuf:"varint,8,opt,name=status,proto3,enum=kodex.providers.v1.ProviderOperationStatus" json:"status,omitempty"`
	// result_ref is provider result URL or id when available.
	ResultRef *string `protobuf:"bytes,9,opt,name=result_ref,json=resultRef,proto3,oneof" json:"result_ref,omitempty"`
	// error_code is a provider error classification.
	ErrorCode *string `protobuf:"bytes,10,opt,name=error_code,json=errorCode,proto3,oneof" json:"error_code,omitempty"`
	// error_message is a short error without secrets.
	ErrorMessage *string `protobuf:"bytes,11,opt,name=error_message,json=errorMessage,proto3,oneof" json:"error_message,omitempty"`
	// rate_limit_snapshot_id links a limit snapshot after operation.
	RateLimitSnapshotId *string `protobuf:"bytes,12,opt,name=rate_limit_snapshot_id,json=rateLimitSnapshotId,proto3,oneof" json:"rate_limit_snapshot_id,omitempty"`
	// started_at is operation start time in RFC3339 format.
	StartedAt string `protobuf:"bytes,13,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
	// finished_at is operation finish time in RFC3339 format when known.
	FinishedAt *string `protobuf:"bytes,14,opt,name=finished_at,json=finishedAt,proto3,oneof" json:"finished_at,omitempty"`
	// operation_policy_context is the risk-based policy context accepted for the command.
	OperationPolicyContext *ProviderOperationPolicyContext `protobuf:"bytes,15,opt,name=operation_policy_context,json=operationPolicyContext,proto3" json:"operation_policy_context,omitempty"`
	// approval_gate_ref is the approval or gate reference accepted for the command.
	ApprovalGateRef *ApprovalGateReference `protobuf:"bytes,16,opt,name=approval_gate_ref,json=approvalGateRef,proto3" json:"approval_gate_ref,omitempty"`
	// provider_version is the resulting provider version or update marker when known.
	ProviderVersion *string `protobuf:"bytes,17,opt,name=provider_version,json=providerVersion,proto3,oneof" json:"provider_version,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *ProviderOperation) Reset() {
	*x = ProviderOperation{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProviderOperation) ProtoMessage() {}

func (x *ProviderOperation) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[19]
	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 ProviderOperation.ProtoReflect.Descriptor instead.
func (*ProviderOperation) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{19}
}

func (x *ProviderOperation) GetProviderOperationId() string {
	if x != nil {
		return x.ProviderOperationId
	}
	return ""
}

func (x *ProviderOperation) GetCommandId() string {
	if x != nil {
		return x.CommandId
	}
	return ""
}

func (x *ProviderOperation) GetActorId() string {
	if x != nil && x.ActorId != nil {
		return *x.ActorId
	}
	return ""
}

func (x *ProviderOperation) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

func (x *ProviderOperation) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *ProviderOperation) GetOperationType() ProviderOperationType {
	if x != nil {
		return x.OperationType
	}
	return ProviderOperationType_PROVIDER_OPERATION_TYPE_UNSPECIFIED
}

func (x *ProviderOperation) GetTargetRef() string {
	if x != nil {
		return x.TargetRef
	}
	return ""
}

func (x *ProviderOperation) GetStatus() ProviderOperationStatus {
	if x != nil {
		return x.Status
	}
	return ProviderOperationStatus_PROVIDER_OPERATION_STATUS_UNSPECIFIED
}

func (x *ProviderOperation) GetResultRef() string {
	if x != nil && x.ResultRef != nil {
		return *x.ResultRef
	}
	return ""
}

func (x *ProviderOperation) GetErrorCode() string {
	if x != nil && x.ErrorCode != nil {
		return *x.ErrorCode
	}
	return ""
}

func (x *ProviderOperation) GetErrorMessage() string {
	if x != nil && x.ErrorMessage != nil {
		return *x.ErrorMessage
	}
	return ""
}

func (x *ProviderOperation) GetRateLimitSnapshotId() string {
	if x != nil && x.RateLimitSnapshotId != nil {
		return *x.RateLimitSnapshotId
	}
	return ""
}

func (x *ProviderOperation) GetStartedAt() string {
	if x != nil {
		return x.StartedAt
	}
	return ""
}

func (x *ProviderOperation) GetFinishedAt() string {
	if x != nil && x.FinishedAt != nil {
		return *x.FinishedAt
	}
	return ""
}

func (x *ProviderOperation) GetOperationPolicyContext() *ProviderOperationPolicyContext {
	if x != nil {
		return x.OperationPolicyContext
	}
	return nil
}

func (x *ProviderOperation) GetApprovalGateRef() *ApprovalGateReference {
	if x != nil {
		return x.ApprovalGateRef
	}
	return nil
}

func (x *ProviderOperation) GetProviderVersion() string {
	if x != nil && x.ProviderVersion != nil {
		return *x.ProviderVersion
	}
	return ""
}

// IngestWebhookEventRequest stores a verified webhook.
type IngestWebhookEventRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,1,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// delivery_id is provider delivery id used for deduplication.
	DeliveryId string `protobuf:"bytes,2,opt,name=delivery_id,json=deliveryId,proto3" json:"delivery_id,omitempty"`
	// event_name is provider event name.
	EventName string `protobuf:"bytes,3,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"`
	// repository_provider_id is provider-native repository id when present.
	RepositoryProviderId *string `protobuf:"bytes,4,opt,name=repository_provider_id,json=repositoryProviderId,proto3,oneof" json:"repository_provider_id,omitempty"`
	// payload_json is raw provider payload.
	PayloadJson string `protobuf:"bytes,5,opt,name=payload_json,json=payloadJson,proto3" json:"payload_json,omitempty"`
	// received_at is receive time in RFC3339 format.
	ReceivedAt string `protobuf:"bytes,6,opt,name=received_at,json=receivedAt,proto3" json:"received_at,omitempty"`
	// meta carries idempotency and audit context.
	Meta          *CommandMeta `protobuf:"bytes,7,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *IngestWebhookEventRequest) Reset() {
	*x = IngestWebhookEventRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*IngestWebhookEventRequest) ProtoMessage() {}

func (x *IngestWebhookEventRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[20]
	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 IngestWebhookEventRequest.ProtoReflect.Descriptor instead.
func (*IngestWebhookEventRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{20}
}

func (x *IngestWebhookEventRequest) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *IngestWebhookEventRequest) GetDeliveryId() string {
	if x != nil {
		return x.DeliveryId
	}
	return ""
}

func (x *IngestWebhookEventRequest) GetEventName() string {
	if x != nil {
		return x.EventName
	}
	return ""
}

func (x *IngestWebhookEventRequest) GetRepositoryProviderId() string {
	if x != nil && x.RepositoryProviderId != nil {
		return *x.RepositoryProviderId
	}
	return ""
}

func (x *IngestWebhookEventRequest) GetPayloadJson() string {
	if x != nil {
		return x.PayloadJson
	}
	return ""
}

func (x *IngestWebhookEventRequest) GetReceivedAt() string {
	if x != nil {
		return x.ReceivedAt
	}
	return ""
}

func (x *IngestWebhookEventRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// WebhookEventResponse returns stored webhook state.
type WebhookEventResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// webhook_event is the returned webhook state.
	WebhookEvent  *WebhookEvent `protobuf:"bytes,1,opt,name=webhook_event,json=webhookEvent,proto3" json:"webhook_event,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *WebhookEventResponse) Reset() {
	*x = WebhookEventResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*WebhookEventResponse) ProtoMessage() {}

func (x *WebhookEventResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[21]
	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 WebhookEventResponse.ProtoReflect.Descriptor instead.
func (*WebhookEventResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{21}
}

func (x *WebhookEventResponse) GetWebhookEvent() *WebhookEvent {
	if x != nil {
		return x.WebhookEvent
	}
	return nil
}

// GetWebhookEventRequest reads a stored webhook.
type GetWebhookEventRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// webhook_event_id is the stored webhook id.
	WebhookEventId string `protobuf:"bytes,1,opt,name=webhook_event_id,json=webhookEventId,proto3" json:"webhook_event_id,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,2,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetWebhookEventRequest) Reset() {
	*x = GetWebhookEventRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetWebhookEventRequest) ProtoMessage() {}

func (x *GetWebhookEventRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[22]
	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 GetWebhookEventRequest.ProtoReflect.Descriptor instead.
func (*GetWebhookEventRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{22}
}

func (x *GetWebhookEventRequest) GetWebhookEventId() string {
	if x != nil {
		return x.WebhookEventId
	}
	return ""
}

func (x *GetWebhookEventRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ListWebhookEventsRequest lists stored webhooks.
type ListWebhookEventsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_slug optionally filters by provider.
	ProviderSlug *string `protobuf:"bytes,1,opt,name=provider_slug,json=providerSlug,proto3,oneof" json:"provider_slug,omitempty"`
	// delivery_id optionally filters by provider delivery id.
	DeliveryId *string `protobuf:"bytes,2,opt,name=delivery_id,json=deliveryId,proto3,oneof" json:"delivery_id,omitempty"`
	// event_names optionally filter provider event names.
	EventNames []string `protobuf:"bytes,3,rep,name=event_names,json=eventNames,proto3" json:"event_names,omitempty"`
	// processing_statuses optionally filter processing status.
	ProcessingStatuses []WebhookProcessingStatus `protobuf:"varint,4,rep,packed,name=processing_statuses,json=processingStatuses,proto3,enum=kodex.providers.v1.WebhookProcessingStatus" json:"processing_statuses,omitempty"`
	// repository_provider_id optionally filters provider repository id.
	RepositoryProviderId *string `protobuf:"bytes,5,opt,name=repository_provider_id,json=repositoryProviderId,proto3,oneof" json:"repository_provider_id,omitempty"`
	// received_since optionally filters lower receive time in RFC3339 format.
	ReceivedSince *string `protobuf:"bytes,6,opt,name=received_since,json=receivedSince,proto3,oneof" json:"received_since,omitempty"`
	// received_until optionally filters upper receive time in RFC3339 format.
	ReceivedUntil *string `protobuf:"bytes,7,opt,name=received_until,json=receivedUntil,proto3,oneof" json:"received_until,omitempty"`
	// page limits response size.
	Page *PageRequest `protobuf:"bytes,8,opt,name=page,proto3" json:"page,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,9,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListWebhookEventsRequest) Reset() {
	*x = ListWebhookEventsRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListWebhookEventsRequest) ProtoMessage() {}

func (x *ListWebhookEventsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[23]
	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 ListWebhookEventsRequest.ProtoReflect.Descriptor instead.
func (*ListWebhookEventsRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{23}
}

func (x *ListWebhookEventsRequest) GetProviderSlug() string {
	if x != nil && x.ProviderSlug != nil {
		return *x.ProviderSlug
	}
	return ""
}

func (x *ListWebhookEventsRequest) GetDeliveryId() string {
	if x != nil && x.DeliveryId != nil {
		return *x.DeliveryId
	}
	return ""
}

func (x *ListWebhookEventsRequest) GetEventNames() []string {
	if x != nil {
		return x.EventNames
	}
	return nil
}

func (x *ListWebhookEventsRequest) GetProcessingStatuses() []WebhookProcessingStatus {
	if x != nil {
		return x.ProcessingStatuses
	}
	return nil
}

func (x *ListWebhookEventsRequest) GetRepositoryProviderId() string {
	if x != nil && x.RepositoryProviderId != nil {
		return *x.RepositoryProviderId
	}
	return ""
}

func (x *ListWebhookEventsRequest) GetReceivedSince() string {
	if x != nil && x.ReceivedSince != nil {
		return *x.ReceivedSince
	}
	return ""
}

func (x *ListWebhookEventsRequest) GetReceivedUntil() string {
	if x != nil && x.ReceivedUntil != nil {
		return *x.ReceivedUntil
	}
	return ""
}

func (x *ListWebhookEventsRequest) GetPage() *PageRequest {
	if x != nil {
		return x.Page
	}
	return nil
}

func (x *ListWebhookEventsRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ListWebhookEventsResponse returns stored webhooks.
type ListWebhookEventsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// webhook_events are returned in stable server-defined order.
	WebhookEvents []*WebhookEvent `protobuf:"bytes,1,rep,name=webhook_events,json=webhookEvents,proto3" json:"webhook_events,omitempty"`
	// page describes continuation state.
	Page          *PageResponse `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListWebhookEventsResponse) Reset() {
	*x = ListWebhookEventsResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListWebhookEventsResponse) ProtoMessage() {}

func (x *ListWebhookEventsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[24]
	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 ListWebhookEventsResponse.ProtoReflect.Descriptor instead.
func (*ListWebhookEventsResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{24}
}

func (x *ListWebhookEventsResponse) GetWebhookEvents() []*WebhookEvent {
	if x != nil {
		return x.WebhookEvents
	}
	return nil
}

func (x *ListWebhookEventsResponse) GetPage() *PageResponse {
	if x != nil {
		return x.Page
	}
	return nil
}

// RetryWebhookEventProcessingRequest re-enqueues a stored webhook.
type RetryWebhookEventProcessingRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// webhook_event_id is the stored webhook id.
	WebhookEventId string `protobuf:"bytes,1,opt,name=webhook_event_id,json=webhookEventId,proto3" json:"webhook_event_id,omitempty"`
	// meta carries idempotency, expected version and audit context.
	Meta          *CommandMeta `protobuf:"bytes,2,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RetryWebhookEventProcessingRequest) Reset() {
	*x = RetryWebhookEventProcessingRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RetryWebhookEventProcessingRequest) ProtoMessage() {}

func (x *RetryWebhookEventProcessingRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[25]
	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 RetryWebhookEventProcessingRequest.ProtoReflect.Descriptor instead.
func (*RetryWebhookEventProcessingRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{25}
}

func (x *RetryWebhookEventProcessingRequest) GetWebhookEventId() string {
	if x != nil {
		return x.WebhookEventId
	}
	return ""
}

func (x *RetryWebhookEventProcessingRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// CleanupExpiredWebhookPayloadsRequest removes retained payloads after retention TTL.
type CleanupExpiredWebhookPayloadsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// limit bounds one explicit cleanup batch; omitted value uses service config.
	Limit *int32 `protobuf:"varint,1,opt,name=limit,proto3,oneof" json:"limit,omitempty"`
	// now optionally overrides cleanup time for deterministic operational runs.
	Now *string `protobuf:"bytes,2,opt,name=now,proto3,oneof" json:"now,omitempty"`
	// meta carries idempotency and audit context.
	Meta          *CommandMeta `protobuf:"bytes,3,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CleanupExpiredWebhookPayloadsRequest) Reset() {
	*x = CleanupExpiredWebhookPayloadsRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CleanupExpiredWebhookPayloadsRequest) ProtoMessage() {}

func (x *CleanupExpiredWebhookPayloadsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[26]
	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 CleanupExpiredWebhookPayloadsRequest.ProtoReflect.Descriptor instead.
func (*CleanupExpiredWebhookPayloadsRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{26}
}

func (x *CleanupExpiredWebhookPayloadsRequest) GetLimit() int32 {
	if x != nil && x.Limit != nil {
		return *x.Limit
	}
	return 0
}

func (x *CleanupExpiredWebhookPayloadsRequest) GetNow() string {
	if x != nil && x.Now != nil {
		return *x.Now
	}
	return ""
}

func (x *CleanupExpiredWebhookPayloadsRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// CleanupExpiredWebhookPayloadsResponse returns safe cleanup diagnostics.
type CleanupExpiredWebhookPayloadsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// cleaned_count is the number of inbox rows whose payload was removed.
	CleanedCount int32 `protobuf:"varint,1,opt,name=cleaned_count,json=cleanedCount,proto3" json:"cleaned_count,omitempty"`
	// cleaned_at is cleanup time in RFC3339 format.
	CleanedAt string `protobuf:"bytes,2,opt,name=cleaned_at,json=cleanedAt,proto3" json:"cleaned_at,omitempty"`
	// webhook_events are safe diagnostics for cleaned rows.
	WebhookEvents []*WebhookEvent `protobuf:"bytes,3,rep,name=webhook_events,json=webhookEvents,proto3" json:"webhook_events,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CleanupExpiredWebhookPayloadsResponse) Reset() {
	*x = CleanupExpiredWebhookPayloadsResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CleanupExpiredWebhookPayloadsResponse) ProtoMessage() {}

func (x *CleanupExpiredWebhookPayloadsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[27]
	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 CleanupExpiredWebhookPayloadsResponse.ProtoReflect.Descriptor instead.
func (*CleanupExpiredWebhookPayloadsResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{27}
}

func (x *CleanupExpiredWebhookPayloadsResponse) GetCleanedCount() int32 {
	if x != nil {
		return x.CleanedCount
	}
	return 0
}

func (x *CleanupExpiredWebhookPayloadsResponse) GetCleanedAt() string {
	if x != nil {
		return x.CleanedAt
	}
	return ""
}

func (x *CleanupExpiredWebhookPayloadsResponse) GetWebhookEvents() []*WebhookEvent {
	if x != nil {
		return x.WebhookEvents
	}
	return nil
}

// GetWorkItemProjectionRequest reads a projection by id.
type GetWorkItemProjectionRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// work_item_projection_id is the internal projection id.
	WorkItemProjectionId string `protobuf:"bytes,1,opt,name=work_item_projection_id,json=workItemProjectionId,proto3" json:"work_item_projection_id,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,2,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetWorkItemProjectionRequest) Reset() {
	*x = GetWorkItemProjectionRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetWorkItemProjectionRequest) ProtoMessage() {}

func (x *GetWorkItemProjectionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[28]
	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 GetWorkItemProjectionRequest.ProtoReflect.Descriptor instead.
func (*GetWorkItemProjectionRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{28}
}

func (x *GetWorkItemProjectionRequest) GetWorkItemProjectionId() string {
	if x != nil {
		return x.WorkItemProjectionId
	}
	return ""
}

func (x *GetWorkItemProjectionRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// FindWorkItemByProviderRefRequest finds a projection by provider-native reference.
type FindWorkItemByProviderRefRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// target identifies the provider-native object.
	Target *ProviderTarget `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,2,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FindWorkItemByProviderRefRequest) Reset() {
	*x = FindWorkItemByProviderRefRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*FindWorkItemByProviderRefRequest) ProtoMessage() {}

func (x *FindWorkItemByProviderRefRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[29]
	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 FindWorkItemByProviderRefRequest.ProtoReflect.Descriptor instead.
func (*FindWorkItemByProviderRefRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{29}
}

func (x *FindWorkItemByProviderRefRequest) GetTarget() *ProviderTarget {
	if x != nil {
		return x.Target
	}
	return nil
}

func (x *FindWorkItemByProviderRefRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// WorkItemProjectionResponse returns one work item projection.
type WorkItemProjectionResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// work_item_projection is the returned projection.
	WorkItemProjection *WorkItemProjection `protobuf:"bytes,1,opt,name=work_item_projection,json=workItemProjection,proto3" json:"work_item_projection,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *WorkItemProjectionResponse) Reset() {
	*x = WorkItemProjectionResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*WorkItemProjectionResponse) ProtoMessage() {}

func (x *WorkItemProjectionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[30]
	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 WorkItemProjectionResponse.ProtoReflect.Descriptor instead.
func (*WorkItemProjectionResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{30}
}

func (x *WorkItemProjectionResponse) GetWorkItemProjection() *WorkItemProjection {
	if x != nil {
		return x.WorkItemProjection
	}
	return nil
}

// ListWorkItemProjectionsRequest lists work item projections.
type ListWorkItemProjectionsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// project_id optionally filters by project-catalog project.
	ProjectId *string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3,oneof" json:"project_id,omitempty"`
	// repository_id optionally filters by project-catalog repository binding.
	RepositoryId *string `protobuf:"bytes,2,opt,name=repository_id,json=repositoryId,proto3,oneof" json:"repository_id,omitempty"`
	// provider_slug optionally filters by provider.
	ProviderSlug *string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3,oneof" json:"provider_slug,omitempty"`
	// repository_full_name optionally filters by provider repository name.
	RepositoryFullName *string `protobuf:"bytes,4,opt,name=repository_full_name,json=repositoryFullName,proto3,oneof" json:"repository_full_name,omitempty"`
	// kinds optionally filter Issue, PR or MR.
	Kinds []WorkItemKind `protobuf:"varint,5,rep,packed,name=kinds,proto3,enum=kodex.providers.v1.WorkItemKind" json:"kinds,omitempty"`
	// states optionally filter provider-normalized states.
	States []string `protobuf:"bytes,6,rep,name=states,proto3" json:"states,omitempty"`
	// labels optionally filter normalized label names.
	Labels []string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty"`
	// work_item_types optionally filter platform work item types.
	WorkItemTypes []string `protobuf:"bytes,8,rep,name=work_item_types,json=workItemTypes,proto3" json:"work_item_types,omitempty"`
	// drift_statuses optionally filter projection freshness.
	DriftStatuses []WorkItemDriftStatus `protobuf:"varint,9,rep,packed,name=drift_statuses,json=driftStatuses,proto3,enum=kodex.providers.v1.WorkItemDriftStatus" json:"drift_statuses,omitempty"`
	// updated_since optionally filters provider update time in RFC3339 format.
	UpdatedSince *string `protobuf:"bytes,10,opt,name=updated_since,json=updatedSince,proto3,oneof" json:"updated_since,omitempty"`
	// page limits response size.
	Page *PageRequest `protobuf:"bytes,11,opt,name=page,proto3" json:"page,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,12,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListWorkItemProjectionsRequest) Reset() {
	*x = ListWorkItemProjectionsRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[31]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListWorkItemProjectionsRequest) ProtoMessage() {}

func (x *ListWorkItemProjectionsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[31]
	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 ListWorkItemProjectionsRequest.ProtoReflect.Descriptor instead.
func (*ListWorkItemProjectionsRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{31}
}

func (x *ListWorkItemProjectionsRequest) GetProjectId() string {
	if x != nil && x.ProjectId != nil {
		return *x.ProjectId
	}
	return ""
}

func (x *ListWorkItemProjectionsRequest) GetRepositoryId() string {
	if x != nil && x.RepositoryId != nil {
		return *x.RepositoryId
	}
	return ""
}

func (x *ListWorkItemProjectionsRequest) GetProviderSlug() string {
	if x != nil && x.ProviderSlug != nil {
		return *x.ProviderSlug
	}
	return ""
}

func (x *ListWorkItemProjectionsRequest) GetRepositoryFullName() string {
	if x != nil && x.RepositoryFullName != nil {
		return *x.RepositoryFullName
	}
	return ""
}

func (x *ListWorkItemProjectionsRequest) GetKinds() []WorkItemKind {
	if x != nil {
		return x.Kinds
	}
	return nil
}

func (x *ListWorkItemProjectionsRequest) GetStates() []string {
	if x != nil {
		return x.States
	}
	return nil
}

func (x *ListWorkItemProjectionsRequest) GetLabels() []string {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *ListWorkItemProjectionsRequest) GetWorkItemTypes() []string {
	if x != nil {
		return x.WorkItemTypes
	}
	return nil
}

func (x *ListWorkItemProjectionsRequest) GetDriftStatuses() []WorkItemDriftStatus {
	if x != nil {
		return x.DriftStatuses
	}
	return nil
}

func (x *ListWorkItemProjectionsRequest) GetUpdatedSince() string {
	if x != nil && x.UpdatedSince != nil {
		return *x.UpdatedSince
	}
	return ""
}

func (x *ListWorkItemProjectionsRequest) GetPage() *PageRequest {
	if x != nil {
		return x.Page
	}
	return nil
}

func (x *ListWorkItemProjectionsRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ListWorkItemProjectionsResponse returns work item projections.
type ListWorkItemProjectionsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// work_item_projections are returned in stable server-defined order.
	WorkItemProjections []*WorkItemProjection `protobuf:"bytes,1,rep,name=work_item_projections,json=workItemProjections,proto3" json:"work_item_projections,omitempty"`
	// page describes continuation state.
	Page          *PageResponse `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListWorkItemProjectionsResponse) Reset() {
	*x = ListWorkItemProjectionsResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[32]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListWorkItemProjectionsResponse) ProtoMessage() {}

func (x *ListWorkItemProjectionsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[32]
	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 ListWorkItemProjectionsResponse.ProtoReflect.Descriptor instead.
func (*ListWorkItemProjectionsResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{32}
}

func (x *ListWorkItemProjectionsResponse) GetWorkItemProjections() []*WorkItemProjection {
	if x != nil {
		return x.WorkItemProjections
	}
	return nil
}

func (x *ListWorkItemProjectionsResponse) GetPage() *PageResponse {
	if x != nil {
		return x.Page
	}
	return nil
}

// ListCommentsRequest lists comments for a work item.
type ListCommentsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// work_item_projection_id selects a known work item projection.
	WorkItemProjectionId string `protobuf:"bytes,1,opt,name=work_item_projection_id,json=workItemProjectionId,proto3" json:"work_item_projection_id,omitempty"`
	// kinds optionally filter comment-like records.
	Kinds []CommentKind `protobuf:"varint,2,rep,packed,name=kinds,proto3,enum=kodex.providers.v1.CommentKind" json:"kinds,omitempty"`
	// page limits response size.
	Page *PageRequest `protobuf:"bytes,3,opt,name=page,proto3" json:"page,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,4,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListCommentsRequest) Reset() {
	*x = ListCommentsRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[33]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListCommentsRequest) ProtoMessage() {}

func (x *ListCommentsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[33]
	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 ListCommentsRequest.ProtoReflect.Descriptor instead.
func (*ListCommentsRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{33}
}

func (x *ListCommentsRequest) GetWorkItemProjectionId() string {
	if x != nil {
		return x.WorkItemProjectionId
	}
	return ""
}

func (x *ListCommentsRequest) GetKinds() []CommentKind {
	if x != nil {
		return x.Kinds
	}
	return nil
}

func (x *ListCommentsRequest) GetPage() *PageRequest {
	if x != nil {
		return x.Page
	}
	return nil
}

func (x *ListCommentsRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ListCommentsResponse returns comment projections.
type ListCommentsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// comments are returned in stable server-defined order.
	Comments []*CommentProjection `protobuf:"bytes,1,rep,name=comments,proto3" json:"comments,omitempty"`
	// page describes continuation state.
	Page          *PageResponse `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListCommentsResponse) Reset() {
	*x = ListCommentsResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListCommentsResponse) ProtoMessage() {}

func (x *ListCommentsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[34]
	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 ListCommentsResponse.ProtoReflect.Descriptor instead.
func (*ListCommentsResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{34}
}

func (x *ListCommentsResponse) GetComments() []*CommentProjection {
	if x != nil {
		return x.Comments
	}
	return nil
}

func (x *ListCommentsResponse) GetPage() *PageResponse {
	if x != nil {
		return x.Page
	}
	return nil
}

// ListRelationshipsRequest lists provider relationships.
type ListRelationshipsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// work_item_projection_id optionally filters relationships touching one work item.
	WorkItemProjectionId *string `protobuf:"bytes,1,opt,name=work_item_projection_id,json=workItemProjectionId,proto3,oneof" json:"work_item_projection_id,omitempty"`
	// relationship_types optionally filter normalized relationship types.
	RelationshipTypes []string `protobuf:"bytes,2,rep,name=relationship_types,json=relationshipTypes,proto3" json:"relationship_types,omitempty"`
	// sources optionally filter relationship source.
	Sources []RelationshipSource `protobuf:"varint,3,rep,packed,name=sources,proto3,enum=kodex.providers.v1.RelationshipSource" json:"sources,omitempty"`
	// confidence_levels optionally filter confidence.
	ConfidenceLevels []RelationshipConfidence `protobuf:"varint,4,rep,packed,name=confidence_levels,json=confidenceLevels,proto3,enum=kodex.providers.v1.RelationshipConfidence" json:"confidence_levels,omitempty"`
	// page limits response size.
	Page *PageRequest `protobuf:"bytes,5,opt,name=page,proto3" json:"page,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,6,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListRelationshipsRequest) Reset() {
	*x = ListRelationshipsRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListRelationshipsRequest) ProtoMessage() {}

func (x *ListRelationshipsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[35]
	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 ListRelationshipsRequest.ProtoReflect.Descriptor instead.
func (*ListRelationshipsRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{35}
}

func (x *ListRelationshipsRequest) GetWorkItemProjectionId() string {
	if x != nil && x.WorkItemProjectionId != nil {
		return *x.WorkItemProjectionId
	}
	return ""
}

func (x *ListRelationshipsRequest) GetRelationshipTypes() []string {
	if x != nil {
		return x.RelationshipTypes
	}
	return nil
}

func (x *ListRelationshipsRequest) GetSources() []RelationshipSource {
	if x != nil {
		return x.Sources
	}
	return nil
}

func (x *ListRelationshipsRequest) GetConfidenceLevels() []RelationshipConfidence {
	if x != nil {
		return x.ConfidenceLevels
	}
	return nil
}

func (x *ListRelationshipsRequest) GetPage() *PageRequest {
	if x != nil {
		return x.Page
	}
	return nil
}

func (x *ListRelationshipsRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ListRelationshipsResponse returns provider relationships.
type ListRelationshipsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// relationships are returned in stable server-defined order.
	Relationships []*ProviderRelationship `protobuf:"bytes,1,rep,name=relationships,proto3" json:"relationships,omitempty"`
	// page describes continuation state.
	Page          *PageResponse `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListRelationshipsResponse) Reset() {
	*x = ListRelationshipsResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListRelationshipsResponse) ProtoMessage() {}

func (x *ListRelationshipsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[36]
	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 ListRelationshipsResponse.ProtoReflect.Descriptor instead.
func (*ListRelationshipsResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{36}
}

func (x *ListRelationshipsResponse) GetRelationships() []*ProviderRelationship {
	if x != nil {
		return x.Relationships
	}
	return nil
}

func (x *ListRelationshipsResponse) GetPage() *PageResponse {
	if x != nil {
		return x.Page
	}
	return nil
}

// RegisterProviderArtifactSignalRequest records a provider artifact signal.
type RegisterProviderArtifactSignalRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// signal_id is optional idempotent signal id.
	SignalId *string `protobuf:"bytes,1,opt,name=signal_id,json=signalId,proto3,oneof" json:"signal_id,omitempty"`
	// target identifies the provider-native object.
	Target *ProviderTarget `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
	// source identifies signal origin, for example slot_agent_after or agent_manager.
	Source string `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"`
	// observed_at is observation time in RFC3339 format.
	ObservedAt string `protobuf:"bytes,4,opt,name=observed_at,json=observedAt,proto3" json:"observed_at,omitempty"`
	// payload_json is optional typed signal payload.
	PayloadJson *string `protobuf:"bytes,5,opt,name=payload_json,json=payloadJson,proto3,oneof" json:"payload_json,omitempty"`
	// meta carries idempotency and audit context.
	Meta *CommandMeta `protobuf:"bytes,6,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account chosen by caller policy for the accelerated reconciliation scope.
	ExternalAccountId string `protobuf:"bytes,7,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *RegisterProviderArtifactSignalRequest) Reset() {
	*x = RegisterProviderArtifactSignalRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RegisterProviderArtifactSignalRequest) ProtoMessage() {}

func (x *RegisterProviderArtifactSignalRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[37]
	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 RegisterProviderArtifactSignalRequest.ProtoReflect.Descriptor instead.
func (*RegisterProviderArtifactSignalRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{37}
}

func (x *RegisterProviderArtifactSignalRequest) GetSignalId() string {
	if x != nil && x.SignalId != nil {
		return *x.SignalId
	}
	return ""
}

func (x *RegisterProviderArtifactSignalRequest) GetTarget() *ProviderTarget {
	if x != nil {
		return x.Target
	}
	return nil
}

func (x *RegisterProviderArtifactSignalRequest) GetSource() string {
	if x != nil {
		return x.Source
	}
	return ""
}

func (x *RegisterProviderArtifactSignalRequest) GetObservedAt() string {
	if x != nil {
		return x.ObservedAt
	}
	return ""
}

func (x *RegisterProviderArtifactSignalRequest) GetPayloadJson() string {
	if x != nil && x.PayloadJson != nil {
		return *x.PayloadJson
	}
	return ""
}

func (x *RegisterProviderArtifactSignalRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *RegisterProviderArtifactSignalRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

// ProviderArtifactSignalResponse returns accepted signal state.
type ProviderArtifactSignalResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// signal_id is the accepted signal id.
	SignalId string `protobuf:"bytes,1,opt,name=signal_id,json=signalId,proto3" json:"signal_id,omitempty"`
	// status is a machine-readable processing status.
	Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
	// target identifies the provider-native object.
	Target        *ProviderTarget `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ProviderArtifactSignalResponse) Reset() {
	*x = ProviderArtifactSignalResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProviderArtifactSignalResponse) ProtoMessage() {}

func (x *ProviderArtifactSignalResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[38]
	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 ProviderArtifactSignalResponse.ProtoReflect.Descriptor instead.
func (*ProviderArtifactSignalResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{38}
}

func (x *ProviderArtifactSignalResponse) GetSignalId() string {
	if x != nil {
		return x.SignalId
	}
	return ""
}

func (x *ProviderArtifactSignalResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *ProviderArtifactSignalResponse) GetTarget() *ProviderTarget {
	if x != nil {
		return x.Target
	}
	return nil
}

// EnqueueReconciliationRequest schedules reconciliation.
type EnqueueReconciliationRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,1,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// scope_type classifies reconciliation scope.
	ScopeType SyncCursorScopeType `protobuf:"varint,2,opt,name=scope_type,json=scopeType,proto3,enum=kodex.providers.v1.SyncCursorScopeType" json:"scope_type,omitempty"`
	// scope_ref is provider scope reference.
	ScopeRef string `protobuf:"bytes,3,opt,name=scope_ref,json=scopeRef,proto3" json:"scope_ref,omitempty"`
	// artifact_kinds select artifacts to reconcile.
	ArtifactKinds []SyncArtifactKind `protobuf:"varint,4,rep,packed,name=artifact_kinds,json=artifactKinds,proto3,enum=kodex.providers.v1.SyncArtifactKind" json:"artifact_kinds,omitempty"`
	// priority classifies reconciliation urgency.
	Priority SyncCursorPriority `protobuf:"varint,5,opt,name=priority,proto3,enum=kodex.providers.v1.SyncCursorPriority" json:"priority,omitempty"`
	// meta carries idempotency and audit context. meta.idempotency_key is required for this operation;
	// command_id alone is not enough because enqueue replay is scoped by provider_slug, scope_type and scope_ref.
	Meta *CommandMeta `protobuf:"bytes,6,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account chosen by the caller's policy for this reconciliation scope.
	ExternalAccountId string `protobuf:"bytes,7,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *EnqueueReconciliationRequest) Reset() {
	*x = EnqueueReconciliationRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[39]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*EnqueueReconciliationRequest) ProtoMessage() {}

func (x *EnqueueReconciliationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[39]
	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 EnqueueReconciliationRequest.ProtoReflect.Descriptor instead.
func (*EnqueueReconciliationRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{39}
}

func (x *EnqueueReconciliationRequest) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *EnqueueReconciliationRequest) GetScopeType() SyncCursorScopeType {
	if x != nil {
		return x.ScopeType
	}
	return SyncCursorScopeType_SYNC_CURSOR_SCOPE_TYPE_UNSPECIFIED
}

func (x *EnqueueReconciliationRequest) GetScopeRef() string {
	if x != nil {
		return x.ScopeRef
	}
	return ""
}

func (x *EnqueueReconciliationRequest) GetArtifactKinds() []SyncArtifactKind {
	if x != nil {
		return x.ArtifactKinds
	}
	return nil
}

func (x *EnqueueReconciliationRequest) GetPriority() SyncCursorPriority {
	if x != nil {
		return x.Priority
	}
	return SyncCursorPriority_SYNC_CURSOR_PRIORITY_UNSPECIFIED
}

func (x *EnqueueReconciliationRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *EnqueueReconciliationRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

// ReconciliationRequestResponse returns scheduled reconciliation state.
type ReconciliationRequestResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// sync_cursors are affected or created cursors.
	SyncCursors   []*SyncCursor `protobuf:"bytes,1,rep,name=sync_cursors,json=syncCursors,proto3" json:"sync_cursors,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ReconciliationRequestResponse) Reset() {
	*x = ReconciliationRequestResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[40]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ReconciliationRequestResponse) ProtoMessage() {}

func (x *ReconciliationRequestResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[40]
	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 ReconciliationRequestResponse.ProtoReflect.Descriptor instead.
func (*ReconciliationRequestResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{40}
}

func (x *ReconciliationRequestResponse) GetSyncCursors() []*SyncCursor {
	if x != nil {
		return x.SyncCursors
	}
	return nil
}

// RunReconciliationBatchRequest processes a reconciliation batch.
type RunReconciliationBatchRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// sync_cursor_id optionally selects an exact cursor.
	SyncCursorId *string `protobuf:"bytes,1,opt,name=sync_cursor_id,json=syncCursorId,proto3,oneof" json:"sync_cursor_id,omitempty"`
	// provider_slug optionally filters provider when cursor is selected by scheduler.
	ProviderSlug *string `protobuf:"bytes,2,opt,name=provider_slug,json=providerSlug,proto3,oneof" json:"provider_slug,omitempty"`
	// max_items limits provider items processed by one batch.
	MaxItems int32 `protobuf:"varint,3,opt,name=max_items,json=maxItems,proto3" json:"max_items,omitempty"`
	// lease_owner identifies worker lease owner.
	LeaseOwner string `protobuf:"bytes,4,opt,name=lease_owner,json=leaseOwner,proto3" json:"lease_owner,omitempty"`
	// meta carries idempotency and audit context.
	Meta *CommandMeta `protobuf:"bytes,5,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id optionally filters scheduler selection to one selected external account.
	ExternalAccountId *string `protobuf:"bytes,6,opt,name=external_account_id,json=externalAccountId,proto3,oneof" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *RunReconciliationBatchRequest) Reset() {
	*x = RunReconciliationBatchRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[41]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RunReconciliationBatchRequest) ProtoMessage() {}

func (x *RunReconciliationBatchRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[41]
	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 RunReconciliationBatchRequest.ProtoReflect.Descriptor instead.
func (*RunReconciliationBatchRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{41}
}

func (x *RunReconciliationBatchRequest) GetSyncCursorId() string {
	if x != nil && x.SyncCursorId != nil {
		return *x.SyncCursorId
	}
	return ""
}

func (x *RunReconciliationBatchRequest) GetProviderSlug() string {
	if x != nil && x.ProviderSlug != nil {
		return *x.ProviderSlug
	}
	return ""
}

func (x *RunReconciliationBatchRequest) GetMaxItems() int32 {
	if x != nil {
		return x.MaxItems
	}
	return 0
}

func (x *RunReconciliationBatchRequest) GetLeaseOwner() string {
	if x != nil {
		return x.LeaseOwner
	}
	return ""
}

func (x *RunReconciliationBatchRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *RunReconciliationBatchRequest) GetExternalAccountId() string {
	if x != nil && x.ExternalAccountId != nil {
		return *x.ExternalAccountId
	}
	return ""
}

// RunReconciliationBatchResponse returns batch result.
type RunReconciliationBatchResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// sync_cursor is the processed cursor.
	SyncCursor *SyncCursor `protobuf:"bytes,1,opt,name=sync_cursor,json=syncCursor,proto3" json:"sync_cursor,omitempty"`
	// items_processed is the number of provider items processed.
	ItemsProcessed int64 `protobuf:"varint,2,opt,name=items_processed,json=itemsProcessed,proto3" json:"items_processed,omitempty"`
	// events_published is the number of domain events published.
	EventsPublished int64 `protobuf:"varint,3,opt,name=events_published,json=eventsPublished,proto3" json:"events_published,omitempty"`
	// retry_after is optional delay hint in RFC3339 duration format.
	RetryAfter    *string `protobuf:"bytes,4,opt,name=retry_after,json=retryAfter,proto3,oneof" json:"retry_after,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RunReconciliationBatchResponse) Reset() {
	*x = RunReconciliationBatchResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[42]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RunReconciliationBatchResponse) ProtoMessage() {}

func (x *RunReconciliationBatchResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[42]
	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 RunReconciliationBatchResponse.ProtoReflect.Descriptor instead.
func (*RunReconciliationBatchResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{42}
}

func (x *RunReconciliationBatchResponse) GetSyncCursor() *SyncCursor {
	if x != nil {
		return x.SyncCursor
	}
	return nil
}

func (x *RunReconciliationBatchResponse) GetItemsProcessed() int64 {
	if x != nil {
		return x.ItemsProcessed
	}
	return 0
}

func (x *RunReconciliationBatchResponse) GetEventsPublished() int64 {
	if x != nil {
		return x.EventsPublished
	}
	return 0
}

func (x *RunReconciliationBatchResponse) GetRetryAfter() string {
	if x != nil && x.RetryAfter != nil {
		return *x.RetryAfter
	}
	return ""
}

// GetSyncCursorRequest reads a cursor.
type GetSyncCursorRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// sync_cursor_id is the cursor id.
	SyncCursorId string `protobuf:"bytes,1,opt,name=sync_cursor_id,json=syncCursorId,proto3" json:"sync_cursor_id,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,2,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetSyncCursorRequest) Reset() {
	*x = GetSyncCursorRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[43]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetSyncCursorRequest) ProtoMessage() {}

func (x *GetSyncCursorRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[43]
	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 GetSyncCursorRequest.ProtoReflect.Descriptor instead.
func (*GetSyncCursorRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{43}
}

func (x *GetSyncCursorRequest) GetSyncCursorId() string {
	if x != nil {
		return x.SyncCursorId
	}
	return ""
}

func (x *GetSyncCursorRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// SyncCursorResponse returns cursor state.
type SyncCursorResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// sync_cursor is the returned cursor state.
	SyncCursor    *SyncCursor `protobuf:"bytes,1,opt,name=sync_cursor,json=syncCursor,proto3" json:"sync_cursor,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SyncCursorResponse) Reset() {
	*x = SyncCursorResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[44]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SyncCursorResponse) ProtoMessage() {}

func (x *SyncCursorResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[44]
	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 SyncCursorResponse.ProtoReflect.Descriptor instead.
func (*SyncCursorResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{44}
}

func (x *SyncCursorResponse) GetSyncCursor() *SyncCursor {
	if x != nil {
		return x.SyncCursor
	}
	return nil
}

// ListSyncCursorsRequest lists cursors.
type ListSyncCursorsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_slug optionally filters provider.
	ProviderSlug *string `protobuf:"bytes,1,opt,name=provider_slug,json=providerSlug,proto3,oneof" json:"provider_slug,omitempty"`
	// scope_type optionally filters scope type.
	ScopeType *SyncCursorScopeType `protobuf:"varint,2,opt,name=scope_type,json=scopeType,proto3,enum=kodex.providers.v1.SyncCursorScopeType,oneof" json:"scope_type,omitempty"`
	// scope_ref optionally filters scope reference.
	ScopeRef *string `protobuf:"bytes,3,opt,name=scope_ref,json=scopeRef,proto3,oneof" json:"scope_ref,omitempty"`
	// artifact_kinds optionally filter artifact kinds.
	ArtifactKinds []SyncArtifactKind `protobuf:"varint,4,rep,packed,name=artifact_kinds,json=artifactKinds,proto3,enum=kodex.providers.v1.SyncArtifactKind" json:"artifact_kinds,omitempty"`
	// priorities optionally filter priority.
	Priorities []SyncCursorPriority `protobuf:"varint,5,rep,packed,name=priorities,proto3,enum=kodex.providers.v1.SyncCursorPriority" json:"priorities,omitempty"`
	// include_healthy controls whether healthy cursors are returned with failed cursors.
	IncludeHealthy bool `protobuf:"varint,6,opt,name=include_healthy,json=includeHealthy,proto3" json:"include_healthy,omitempty"`
	// page limits response size.
	Page *PageRequest `protobuf:"bytes,7,opt,name=page,proto3" json:"page,omitempty"`
	// meta carries read actor and request context.
	Meta *QueryMeta `protobuf:"bytes,8,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id optionally filters cursors by selected external account.
	ExternalAccountId *string `protobuf:"bytes,9,opt,name=external_account_id,json=externalAccountId,proto3,oneof" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *ListSyncCursorsRequest) Reset() {
	*x = ListSyncCursorsRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[45]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListSyncCursorsRequest) ProtoMessage() {}

func (x *ListSyncCursorsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[45]
	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 ListSyncCursorsRequest.ProtoReflect.Descriptor instead.
func (*ListSyncCursorsRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{45}
}

func (x *ListSyncCursorsRequest) GetProviderSlug() string {
	if x != nil && x.ProviderSlug != nil {
		return *x.ProviderSlug
	}
	return ""
}

func (x *ListSyncCursorsRequest) GetScopeType() SyncCursorScopeType {
	if x != nil && x.ScopeType != nil {
		return *x.ScopeType
	}
	return SyncCursorScopeType_SYNC_CURSOR_SCOPE_TYPE_UNSPECIFIED
}

func (x *ListSyncCursorsRequest) GetScopeRef() string {
	if x != nil && x.ScopeRef != nil {
		return *x.ScopeRef
	}
	return ""
}

func (x *ListSyncCursorsRequest) GetArtifactKinds() []SyncArtifactKind {
	if x != nil {
		return x.ArtifactKinds
	}
	return nil
}

func (x *ListSyncCursorsRequest) GetPriorities() []SyncCursorPriority {
	if x != nil {
		return x.Priorities
	}
	return nil
}

func (x *ListSyncCursorsRequest) GetIncludeHealthy() bool {
	if x != nil {
		return x.IncludeHealthy
	}
	return false
}

func (x *ListSyncCursorsRequest) GetPage() *PageRequest {
	if x != nil {
		return x.Page
	}
	return nil
}

func (x *ListSyncCursorsRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *ListSyncCursorsRequest) GetExternalAccountId() string {
	if x != nil && x.ExternalAccountId != nil {
		return *x.ExternalAccountId
	}
	return ""
}

// ListSyncCursorsResponse returns cursors.
type ListSyncCursorsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// sync_cursors are returned in stable server-defined order.
	SyncCursors []*SyncCursor `protobuf:"bytes,1,rep,name=sync_cursors,json=syncCursors,proto3" json:"sync_cursors,omitempty"`
	// page describes continuation state.
	Page          *PageResponse `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListSyncCursorsResponse) Reset() {
	*x = ListSyncCursorsResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[46]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListSyncCursorsResponse) ProtoMessage() {}

func (x *ListSyncCursorsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[46]
	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 ListSyncCursorsResponse.ProtoReflect.Descriptor instead.
func (*ListSyncCursorsResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{46}
}

func (x *ListSyncCursorsResponse) GetSyncCursors() []*SyncCursor {
	if x != nil {
		return x.SyncCursors
	}
	return nil
}

func (x *ListSyncCursorsResponse) GetPage() *PageResponse {
	if x != nil {
		return x.Page
	}
	return nil
}

// CreateIssueRequest creates a provider-native Issue.
type CreateIssueRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// project_id is the project-catalog project id.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// repository_id is the project-catalog repository binding id.
	RepositoryId string `protobuf:"bytes,2,opt,name=repository_id,json=repositoryId,proto3" json:"repository_id,omitempty"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// title is provider Issue title.
	Title string `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"`
	// body is provider Issue body.
	Body string `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"`
	// labels are provider label names.
	Labels []string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty"`
	// assignee_provider_logins are provider logins to assign.
	AssigneeProviderLogins []string `protobuf:"bytes,7,rep,name=assignee_provider_logins,json=assigneeProviderLogins,proto3" json:"assignee_provider_logins,omitempty"`
	// milestone is provider milestone title or id.
	Milestone *string `protobuf:"bytes,8,opt,name=milestone,proto3,oneof" json:"milestone,omitempty"`
	// work_item_type is platform work item type to encode through provider fields or watermark.
	WorkItemType *string `protobuf:"bytes,9,opt,name=work_item_type,json=workItemType,proto3,oneof" json:"work_item_type,omitempty"`
	// watermark_json is platform watermark payload to place into body when required.
	WatermarkJson *string `protobuf:"bytes,10,opt,name=watermark_json,json=watermarkJson,proto3,oneof" json:"watermark_json,omitempty"`
	// meta carries idempotency and audit context.
	Meta *CommandMeta `protobuf:"bytes,11,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account selected by caller policy for the provider write.
	ExternalAccountId string `protobuf:"bytes,12,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	// repository_target identifies the provider repository where the Issue must be created.
	RepositoryTarget *ProviderTarget `protobuf:"bytes,13,opt,name=repository_target,json=repositoryTarget,proto3" json:"repository_target,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *CreateIssueRequest) Reset() {
	*x = CreateIssueRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[47]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CreateIssueRequest) ProtoMessage() {}

func (x *CreateIssueRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[47]
	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 CreateIssueRequest.ProtoReflect.Descriptor instead.
func (*CreateIssueRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{47}
}

func (x *CreateIssueRequest) GetProjectId() string {
	if x != nil {
		return x.ProjectId
	}
	return ""
}

func (x *CreateIssueRequest) GetRepositoryId() string {
	if x != nil {
		return x.RepositoryId
	}
	return ""
}

func (x *CreateIssueRequest) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *CreateIssueRequest) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *CreateIssueRequest) GetBody() string {
	if x != nil {
		return x.Body
	}
	return ""
}

func (x *CreateIssueRequest) GetLabels() []string {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *CreateIssueRequest) GetAssigneeProviderLogins() []string {
	if x != nil {
		return x.AssigneeProviderLogins
	}
	return nil
}

func (x *CreateIssueRequest) GetMilestone() string {
	if x != nil && x.Milestone != nil {
		return *x.Milestone
	}
	return ""
}

func (x *CreateIssueRequest) GetWorkItemType() string {
	if x != nil && x.WorkItemType != nil {
		return *x.WorkItemType
	}
	return ""
}

func (x *CreateIssueRequest) GetWatermarkJson() string {
	if x != nil && x.WatermarkJson != nil {
		return *x.WatermarkJson
	}
	return ""
}

func (x *CreateIssueRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *CreateIssueRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

func (x *CreateIssueRequest) GetRepositoryTarget() *ProviderTarget {
	if x != nil {
		return x.RepositoryTarget
	}
	return nil
}

// UpdateIssueRequest updates provider-native Issue fields.
type UpdateIssueRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// target identifies the provider-native Issue.
	Target *ProviderTarget `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
	// title is optional replacement title.
	Title *string `protobuf:"bytes,2,opt,name=title,proto3,oneof" json:"title,omitempty"`
	// body is optional replacement body.
	Body *string `protobuf:"bytes,3,opt,name=body,proto3,oneof" json:"body,omitempty"`
	// labels replaces provider labels when the message is present; empty values clear labels.
	Labels *StringListPatch `protobuf:"bytes,4,opt,name=labels,proto3" json:"labels,omitempty"`
	// assignee_provider_logins replaces provider assignees when the message is present;
	// empty values clear assignees.
	AssigneeProviderLogins *StringListPatch `protobuf:"bytes,5,opt,name=assignee_provider_logins,json=assigneeProviderLogins,proto3" json:"assignee_provider_logins,omitempty"`
	// milestone is optional provider milestone title or id.
	Milestone *string `protobuf:"bytes,6,opt,name=milestone,proto3,oneof" json:"milestone,omitempty"`
	// state is optional provider-normalized lifecycle state.
	State *string `protobuf:"bytes,7,opt,name=state,proto3,oneof" json:"state,omitempty"`
	// work_item_type is optional platform work item type.
	WorkItemType *string `protobuf:"bytes,8,opt,name=work_item_type,json=workItemType,proto3,oneof" json:"work_item_type,omitempty"`
	// watermark_json is optional platform watermark payload.
	WatermarkJson *string `protobuf:"bytes,9,opt,name=watermark_json,json=watermarkJson,proto3,oneof" json:"watermark_json,omitempty"`
	// expected_provider_version is optional provider version or update marker.
	ExpectedProviderVersion *string `protobuf:"bytes,10,opt,name=expected_provider_version,json=expectedProviderVersion,proto3,oneof" json:"expected_provider_version,omitempty"`
	// meta carries idempotency, expected projection version and audit context.
	Meta *CommandMeta `protobuf:"bytes,11,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account selected by caller policy for the provider write.
	ExternalAccountId string `protobuf:"bytes,12,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *UpdateIssueRequest) Reset() {
	*x = UpdateIssueRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[48]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*UpdateIssueRequest) ProtoMessage() {}

func (x *UpdateIssueRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[48]
	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 UpdateIssueRequest.ProtoReflect.Descriptor instead.
func (*UpdateIssueRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{48}
}

func (x *UpdateIssueRequest) GetTarget() *ProviderTarget {
	if x != nil {
		return x.Target
	}
	return nil
}

func (x *UpdateIssueRequest) GetTitle() string {
	if x != nil && x.Title != nil {
		return *x.Title
	}
	return ""
}

func (x *UpdateIssueRequest) GetBody() string {
	if x != nil && x.Body != nil {
		return *x.Body
	}
	return ""
}

func (x *UpdateIssueRequest) GetLabels() *StringListPatch {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *UpdateIssueRequest) GetAssigneeProviderLogins() *StringListPatch {
	if x != nil {
		return x.AssigneeProviderLogins
	}
	return nil
}

func (x *UpdateIssueRequest) GetMilestone() string {
	if x != nil && x.Milestone != nil {
		return *x.Milestone
	}
	return ""
}

func (x *UpdateIssueRequest) GetState() string {
	if x != nil && x.State != nil {
		return *x.State
	}
	return ""
}

func (x *UpdateIssueRequest) GetWorkItemType() string {
	if x != nil && x.WorkItemType != nil {
		return *x.WorkItemType
	}
	return ""
}

func (x *UpdateIssueRequest) GetWatermarkJson() string {
	if x != nil && x.WatermarkJson != nil {
		return *x.WatermarkJson
	}
	return ""
}

func (x *UpdateIssueRequest) GetExpectedProviderVersion() string {
	if x != nil && x.ExpectedProviderVersion != nil {
		return *x.ExpectedProviderVersion
	}
	return ""
}

func (x *UpdateIssueRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *UpdateIssueRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

// CreateCommentRequest creates a provider-native comment.
type CreateCommentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// target identifies the provider-native work item.
	Target *ProviderTarget `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
	// body is comment body.
	Body string `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"`
	// meta carries idempotency and audit context.
	Meta *CommandMeta `protobuf:"bytes,3,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account selected by caller policy for the provider write.
	ExternalAccountId string `protobuf:"bytes,4,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *CreateCommentRequest) Reset() {
	*x = CreateCommentRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[49]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CreateCommentRequest) ProtoMessage() {}

func (x *CreateCommentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[49]
	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 CreateCommentRequest.ProtoReflect.Descriptor instead.
func (*CreateCommentRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{49}
}

func (x *CreateCommentRequest) GetTarget() *ProviderTarget {
	if x != nil {
		return x.Target
	}
	return nil
}

func (x *CreateCommentRequest) GetBody() string {
	if x != nil {
		return x.Body
	}
	return ""
}

func (x *CreateCommentRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *CreateCommentRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

// UpdateCommentRequest updates a platform-owned provider comment.
type UpdateCommentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// target identifies the provider-native comment.
	Target *ProviderTarget `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
	// provider_comment_id is the provider-native comment id.
	ProviderCommentId string `protobuf:"bytes,2,opt,name=provider_comment_id,json=providerCommentId,proto3" json:"provider_comment_id,omitempty"`
	// body is replacement comment body.
	Body string `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
	// expected_provider_version is optional provider version or update marker.
	ExpectedProviderVersion *string `protobuf:"bytes,4,opt,name=expected_provider_version,json=expectedProviderVersion,proto3,oneof" json:"expected_provider_version,omitempty"`
	// meta carries idempotency, expected projection version and audit context.
	Meta *CommandMeta `protobuf:"bytes,5,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account selected by caller policy for the provider write.
	ExternalAccountId string `protobuf:"bytes,6,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *UpdateCommentRequest) Reset() {
	*x = UpdateCommentRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[50]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*UpdateCommentRequest) ProtoMessage() {}

func (x *UpdateCommentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[50]
	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 UpdateCommentRequest.ProtoReflect.Descriptor instead.
func (*UpdateCommentRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{50}
}

func (x *UpdateCommentRequest) GetTarget() *ProviderTarget {
	if x != nil {
		return x.Target
	}
	return nil
}

func (x *UpdateCommentRequest) GetProviderCommentId() string {
	if x != nil {
		return x.ProviderCommentId
	}
	return ""
}

func (x *UpdateCommentRequest) GetBody() string {
	if x != nil {
		return x.Body
	}
	return ""
}

func (x *UpdateCommentRequest) GetExpectedProviderVersion() string {
	if x != nil && x.ExpectedProviderVersion != nil {
		return *x.ExpectedProviderVersion
	}
	return ""
}

func (x *UpdateCommentRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *UpdateCommentRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

// CreatePullRequestRequest creates a provider-native PR/MR.
type CreatePullRequestRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// project_id is the project-catalog project id.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// repository_id is the project-catalog repository binding id.
	RepositoryId string `protobuf:"bytes,2,opt,name=repository_id,json=repositoryId,proto3" json:"repository_id,omitempty"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// title is PR/MR title.
	Title string `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"`
	// body is PR/MR body.
	Body string `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"`
	// head_branch is source branch.
	HeadBranch string `protobuf:"bytes,6,opt,name=head_branch,json=headBranch,proto3" json:"head_branch,omitempty"`
	// base_branch is target branch.
	BaseBranch string `protobuf:"bytes,7,opt,name=base_branch,json=baseBranch,proto3" json:"base_branch,omitempty"`
	// draft controls provider draft state when supported.
	Draft bool `protobuf:"varint,8,opt,name=draft,proto3" json:"draft,omitempty"`
	// labels are provider label names when supported.
	Labels []string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty"`
	// linked_issue_ref optionally links source Issue.
	LinkedIssueRef *string `protobuf:"bytes,10,opt,name=linked_issue_ref,json=linkedIssueRef,proto3,oneof" json:"linked_issue_ref,omitempty"`
	// watermark_json is platform watermark payload to place into body when required.
	WatermarkJson *string `protobuf:"bytes,11,opt,name=watermark_json,json=watermarkJson,proto3,oneof" json:"watermark_json,omitempty"`
	// meta carries idempotency and audit context.
	Meta *CommandMeta `protobuf:"bytes,12,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account selected by caller policy for the provider write.
	ExternalAccountId string `protobuf:"bytes,13,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	// repository_target identifies the provider repository where the PR/MR must be created.
	RepositoryTarget *ProviderTarget `protobuf:"bytes,14,opt,name=repository_target,json=repositoryTarget,proto3" json:"repository_target,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *CreatePullRequestRequest) Reset() {
	*x = CreatePullRequestRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[51]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CreatePullRequestRequest) ProtoMessage() {}

func (x *CreatePullRequestRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[51]
	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 CreatePullRequestRequest.ProtoReflect.Descriptor instead.
func (*CreatePullRequestRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{51}
}

func (x *CreatePullRequestRequest) GetProjectId() string {
	if x != nil {
		return x.ProjectId
	}
	return ""
}

func (x *CreatePullRequestRequest) GetRepositoryId() string {
	if x != nil {
		return x.RepositoryId
	}
	return ""
}

func (x *CreatePullRequestRequest) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *CreatePullRequestRequest) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *CreatePullRequestRequest) GetBody() string {
	if x != nil {
		return x.Body
	}
	return ""
}

func (x *CreatePullRequestRequest) GetHeadBranch() string {
	if x != nil {
		return x.HeadBranch
	}
	return ""
}

func (x *CreatePullRequestRequest) GetBaseBranch() string {
	if x != nil {
		return x.BaseBranch
	}
	return ""
}

func (x *CreatePullRequestRequest) GetDraft() bool {
	if x != nil {
		return x.Draft
	}
	return false
}

func (x *CreatePullRequestRequest) GetLabels() []string {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *CreatePullRequestRequest) GetLinkedIssueRef() string {
	if x != nil && x.LinkedIssueRef != nil {
		return *x.LinkedIssueRef
	}
	return ""
}

func (x *CreatePullRequestRequest) GetWatermarkJson() string {
	if x != nil && x.WatermarkJson != nil {
		return *x.WatermarkJson
	}
	return ""
}

func (x *CreatePullRequestRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *CreatePullRequestRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

func (x *CreatePullRequestRequest) GetRepositoryTarget() *ProviderTarget {
	if x != nil {
		return x.RepositoryTarget
	}
	return nil
}

// CreateRepositoryRequest creates a provider-native repository with provider-side initialization.
type CreateRepositoryRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// project_id is the project-catalog project id.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// repository_id is the project-catalog repository binding id.
	RepositoryId string `protobuf:"bytes,2,opt,name=repository_id,json=repositoryId,proto3" json:"repository_id,omitempty"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// owner_kind disambiguates organization-owned repositories from authenticated user repositories.
	OwnerKind RepositoryOwnerKind `protobuf:"varint,4,opt,name=owner_kind,json=ownerKind,proto3,enum=kodex.providers.v1.RepositoryOwnerKind" json:"owner_kind,omitempty"`
	// provider_owner is the provider organization login for organization-owned repositories.
	ProviderOwner *string `protobuf:"bytes,5,opt,name=provider_owner,json=providerOwner,proto3,oneof" json:"provider_owner,omitempty"`
	// repository_name is the provider repository name without owner prefix.
	RepositoryName string `protobuf:"bytes,6,opt,name=repository_name,json=repositoryName,proto3" json:"repository_name,omitempty"`
	// visibility is the requested provider repository visibility.
	Visibility RepositoryVisibility `protobuf:"varint,7,opt,name=visibility,proto3,enum=kodex.providers.v1.RepositoryVisibility" json:"visibility,omitempty"`
	// description is an optional safe provider repository description.
	Description *string `protobuf:"bytes,8,opt,name=description,proto3,oneof" json:"description,omitempty"`
	// meta carries idempotency and audit context.
	Meta *CommandMeta `protobuf:"bytes,9,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account selected by caller policy for the provider write.
	ExternalAccountId string `protobuf:"bytes,10,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *CreateRepositoryRequest) Reset() {
	*x = CreateRepositoryRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[52]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CreateRepositoryRequest) ProtoMessage() {}

func (x *CreateRepositoryRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[52]
	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 CreateRepositoryRequest.ProtoReflect.Descriptor instead.
func (*CreateRepositoryRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{52}
}

func (x *CreateRepositoryRequest) GetProjectId() string {
	if x != nil {
		return x.ProjectId
	}
	return ""
}

func (x *CreateRepositoryRequest) GetRepositoryId() string {
	if x != nil {
		return x.RepositoryId
	}
	return ""
}

func (x *CreateRepositoryRequest) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *CreateRepositoryRequest) GetOwnerKind() RepositoryOwnerKind {
	if x != nil {
		return x.OwnerKind
	}
	return RepositoryOwnerKind_REPOSITORY_OWNER_KIND_UNSPECIFIED
}

func (x *CreateRepositoryRequest) GetProviderOwner() string {
	if x != nil && x.ProviderOwner != nil {
		return *x.ProviderOwner
	}
	return ""
}

func (x *CreateRepositoryRequest) GetRepositoryName() string {
	if x != nil {
		return x.RepositoryName
	}
	return ""
}

func (x *CreateRepositoryRequest) GetVisibility() RepositoryVisibility {
	if x != nil {
		return x.Visibility
	}
	return RepositoryVisibility_REPOSITORY_VISIBILITY_UNSPECIFIED
}

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

func (x *CreateRepositoryRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *CreateRepositoryRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

// BootstrapFile is one text file prepared by project, agent or package contour.
type BootstrapFile struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// path is a repository-relative file path.
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// content is UTF-8 text content prepared outside provider-hub.
	Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
	// executable marks files that must be written with executable mode when supported.
	Executable    bool `protobuf:"varint,3,opt,name=executable,proto3" json:"executable,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BootstrapFile) Reset() {
	*x = BootstrapFile{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[53]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*BootstrapFile) ProtoMessage() {}

func (x *BootstrapFile) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[53]
	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 BootstrapFile.ProtoReflect.Descriptor instead.
func (*BootstrapFile) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{53}
}

func (x *BootstrapFile) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *BootstrapFile) GetContent() string {
	if x != nil {
		return x.Content
	}
	return ""
}

func (x *BootstrapFile) GetExecutable() bool {
	if x != nil {
		return x.Executable
	}
	return false
}

// AdoptionFile is one text file prepared outside provider-hub for adoption branch creation.
type AdoptionFile struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// path is a repository-relative file path.
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// content is UTF-8 text content prepared outside provider-hub.
	Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
	// executable marks files that must be written with executable mode when supported.
	Executable    bool `protobuf:"varint,3,opt,name=executable,proto3" json:"executable,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AdoptionFile) Reset() {
	*x = AdoptionFile{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[54]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AdoptionFile) ProtoMessage() {}

func (x *AdoptionFile) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[54]
	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 AdoptionFile.ProtoReflect.Descriptor instead.
func (*AdoptionFile) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{54}
}

func (x *AdoptionFile) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *AdoptionFile) GetContent() string {
	if x != nil {
		return x.Content
	}
	return ""
}

func (x *AdoptionFile) GetExecutable() bool {
	if x != nil {
		return x.Executable
	}
	return false
}

// CreateBootstrapPullRequestRequest creates or updates bootstrap branch and PR/MR for a bootstrap-ready repository.
type CreateBootstrapPullRequestRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// project_id is the project-catalog project id.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// repository_id is the project-catalog repository binding id.
	RepositoryId string `protobuf:"bytes,2,opt,name=repository_id,json=repositoryId,proto3" json:"repository_id,omitempty"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// repository_target identifies an existing provider repository. GitHub auto_init README seed is allowed.
	RepositoryTarget *ProviderTarget `protobuf:"bytes,4,opt,name=repository_target,json=repositoryTarget,proto3" json:"repository_target,omitempty"`
	// base_branch is the target branch that already exists at provider side.
	BaseBranch string `protobuf:"bytes,5,opt,name=base_branch,json=baseBranch,proto3" json:"base_branch,omitempty"`
	// bootstrap_branch is the branch provider-hub creates or updates.
	BootstrapBranch string `protobuf:"bytes,6,opt,name=bootstrap_branch,json=bootstrapBranch,proto3" json:"bootstrap_branch,omitempty"`
	// commit_message is the safe commit message for the bootstrap files.
	CommitMessage string `protobuf:"bytes,7,opt,name=commit_message,json=commitMessage,proto3" json:"commit_message,omitempty"`
	// title is PR/MR title.
	Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title,omitempty"`
	// body is PR/MR body.
	Body string `protobuf:"bytes,9,opt,name=body,proto3" json:"body,omitempty"`
	// draft controls provider draft state when supported.
	Draft bool `protobuf:"varint,10,opt,name=draft,proto3" json:"draft,omitempty"`
	// files are prepared text files; provider-hub does not generate their content.
	Files []*BootstrapFile `protobuf:"bytes,11,rep,name=files,proto3" json:"files,omitempty"`
	// watermark_json is platform watermark payload to place into PR/MR body when required.
	WatermarkJson *string `protobuf:"bytes,12,opt,name=watermark_json,json=watermarkJson,proto3,oneof" json:"watermark_json,omitempty"`
	// meta carries idempotency and audit context.
	Meta *CommandMeta `protobuf:"bytes,13,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account selected by caller policy for the provider write.
	ExternalAccountId string `protobuf:"bytes,14,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *CreateBootstrapPullRequestRequest) Reset() {
	*x = CreateBootstrapPullRequestRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[55]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CreateBootstrapPullRequestRequest) ProtoMessage() {}

func (x *CreateBootstrapPullRequestRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[55]
	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 CreateBootstrapPullRequestRequest.ProtoReflect.Descriptor instead.
func (*CreateBootstrapPullRequestRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{55}
}

func (x *CreateBootstrapPullRequestRequest) GetProjectId() string {
	if x != nil {
		return x.ProjectId
	}
	return ""
}

func (x *CreateBootstrapPullRequestRequest) GetRepositoryId() string {
	if x != nil {
		return x.RepositoryId
	}
	return ""
}

func (x *CreateBootstrapPullRequestRequest) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *CreateBootstrapPullRequestRequest) GetRepositoryTarget() *ProviderTarget {
	if x != nil {
		return x.RepositoryTarget
	}
	return nil
}

func (x *CreateBootstrapPullRequestRequest) GetBaseBranch() string {
	if x != nil {
		return x.BaseBranch
	}
	return ""
}

func (x *CreateBootstrapPullRequestRequest) GetBootstrapBranch() string {
	if x != nil {
		return x.BootstrapBranch
	}
	return ""
}

func (x *CreateBootstrapPullRequestRequest) GetCommitMessage() string {
	if x != nil {
		return x.CommitMessage
	}
	return ""
}

func (x *CreateBootstrapPullRequestRequest) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *CreateBootstrapPullRequestRequest) GetBody() string {
	if x != nil {
		return x.Body
	}
	return ""
}

func (x *CreateBootstrapPullRequestRequest) GetDraft() bool {
	if x != nil {
		return x.Draft
	}
	return false
}

func (x *CreateBootstrapPullRequestRequest) GetFiles() []*BootstrapFile {
	if x != nil {
		return x.Files
	}
	return nil
}

func (x *CreateBootstrapPullRequestRequest) GetWatermarkJson() string {
	if x != nil && x.WatermarkJson != nil {
		return *x.WatermarkJson
	}
	return ""
}

func (x *CreateBootstrapPullRequestRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *CreateBootstrapPullRequestRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

// CreateAdoptionPullRequestRequest creates or updates adoption branch and PR/MR for an existing repository.
type CreateAdoptionPullRequestRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// project_id is the project-catalog project id.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// repository_id is the project-catalog repository binding id.
	RepositoryId string `protobuf:"bytes,2,opt,name=repository_id,json=repositoryId,proto3" json:"repository_id,omitempty"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// repository_target identifies an existing provider repository.
	RepositoryTarget *ProviderTarget `protobuf:"bytes,4,opt,name=repository_target,json=repositoryTarget,proto3" json:"repository_target,omitempty"`
	// base_branch is the target branch that already exists at provider side.
	BaseBranch string `protobuf:"bytes,5,opt,name=base_branch,json=baseBranch,proto3" json:"base_branch,omitempty"`
	// adoption_branch is the branch provider-hub creates or updates.
	AdoptionBranch string `protobuf:"bytes,6,opt,name=adoption_branch,json=adoptionBranch,proto3" json:"adoption_branch,omitempty"`
	// commit_message is the safe commit message for prepared adoption files.
	CommitMessage string `protobuf:"bytes,7,opt,name=commit_message,json=commitMessage,proto3" json:"commit_message,omitempty"`
	// title is PR/MR title.
	Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title,omitempty"`
	// body is PR/MR body.
	Body string `protobuf:"bytes,9,opt,name=body,proto3" json:"body,omitempty"`
	// draft controls provider draft state when supported.
	Draft bool `protobuf:"varint,10,opt,name=draft,proto3" json:"draft,omitempty"`
	// files are prepared text files; provider-hub does not scan repository or generate their content.
	Files []*AdoptionFile `protobuf:"bytes,11,rep,name=files,proto3" json:"files,omitempty"`
	// watermark_json is platform watermark payload to place into PR/MR body when required.
	WatermarkJson *string `protobuf:"bytes,12,opt,name=watermark_json,json=watermarkJson,proto3,oneof" json:"watermark_json,omitempty"`
	// meta carries idempotency and audit context.
	Meta *CommandMeta `protobuf:"bytes,13,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account selected by caller policy for the provider write.
	ExternalAccountId string `protobuf:"bytes,14,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *CreateAdoptionPullRequestRequest) Reset() {
	*x = CreateAdoptionPullRequestRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[56]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CreateAdoptionPullRequestRequest) ProtoMessage() {}

func (x *CreateAdoptionPullRequestRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[56]
	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 CreateAdoptionPullRequestRequest.ProtoReflect.Descriptor instead.
func (*CreateAdoptionPullRequestRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{56}
}

func (x *CreateAdoptionPullRequestRequest) GetProjectId() string {
	if x != nil {
		return x.ProjectId
	}
	return ""
}

func (x *CreateAdoptionPullRequestRequest) GetRepositoryId() string {
	if x != nil {
		return x.RepositoryId
	}
	return ""
}

func (x *CreateAdoptionPullRequestRequest) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *CreateAdoptionPullRequestRequest) GetRepositoryTarget() *ProviderTarget {
	if x != nil {
		return x.RepositoryTarget
	}
	return nil
}

func (x *CreateAdoptionPullRequestRequest) GetBaseBranch() string {
	if x != nil {
		return x.BaseBranch
	}
	return ""
}

func (x *CreateAdoptionPullRequestRequest) GetAdoptionBranch() string {
	if x != nil {
		return x.AdoptionBranch
	}
	return ""
}

func (x *CreateAdoptionPullRequestRequest) GetCommitMessage() string {
	if x != nil {
		return x.CommitMessage
	}
	return ""
}

func (x *CreateAdoptionPullRequestRequest) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *CreateAdoptionPullRequestRequest) GetBody() string {
	if x != nil {
		return x.Body
	}
	return ""
}

func (x *CreateAdoptionPullRequestRequest) GetDraft() bool {
	if x != nil {
		return x.Draft
	}
	return false
}

func (x *CreateAdoptionPullRequestRequest) GetFiles() []*AdoptionFile {
	if x != nil {
		return x.Files
	}
	return nil
}

func (x *CreateAdoptionPullRequestRequest) GetWatermarkJson() string {
	if x != nil && x.WatermarkJson != nil {
		return *x.WatermarkJson
	}
	return ""
}

func (x *CreateAdoptionPullRequestRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *CreateAdoptionPullRequestRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

// RepositoryAdoptionScanOptions bounds a provider-side scan of an existing repository.
type RepositoryAdoptionScanOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// requested_ref is the branch or provider ref to inspect. Empty means provider default branch.
	RequestedRef *string `protobuf:"bytes,1,opt,name=requested_ref,json=requestedRef,proto3,oneof" json:"requested_ref,omitempty"`
	// allowed_ref_prefixes is the caller-approved branch/ref policy. Empty allows only the default branch.
	AllowedRefPrefixes []string `protobuf:"bytes,2,rep,name=allowed_ref_prefixes,json=allowedRefPrefixes,proto3" json:"allowed_ref_prefixes,omitempty"`
	// max_tree_entries limits provider file tree entries inspected.
	MaxTreeEntries int32 `protobuf:"varint,3,opt,name=max_tree_entries,json=maxTreeEntries,proto3" json:"max_tree_entries,omitempty"`
	// max_marker_paths limits marker paths returned in the snapshot.
	MaxMarkerPaths int32 `protobuf:"varint,4,opt,name=max_marker_paths,json=maxMarkerPaths,proto3" json:"max_marker_paths,omitempty"`
	// marker_path_hints are additional safe repository-relative paths to classify if present.
	MarkerPathHints []string `protobuf:"bytes,5,rep,name=marker_path_hints,json=markerPathHints,proto3" json:"marker_path_hints,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *RepositoryAdoptionScanOptions) Reset() {
	*x = RepositoryAdoptionScanOptions{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[57]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RepositoryAdoptionScanOptions) ProtoMessage() {}

func (x *RepositoryAdoptionScanOptions) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[57]
	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 RepositoryAdoptionScanOptions.ProtoReflect.Descriptor instead.
func (*RepositoryAdoptionScanOptions) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{57}
}

func (x *RepositoryAdoptionScanOptions) GetRequestedRef() string {
	if x != nil && x.RequestedRef != nil {
		return *x.RequestedRef
	}
	return ""
}

func (x *RepositoryAdoptionScanOptions) GetAllowedRefPrefixes() []string {
	if x != nil {
		return x.AllowedRefPrefixes
	}
	return nil
}

func (x *RepositoryAdoptionScanOptions) GetMaxTreeEntries() int32 {
	if x != nil {
		return x.MaxTreeEntries
	}
	return 0
}

func (x *RepositoryAdoptionScanOptions) GetMaxMarkerPaths() int32 {
	if x != nil {
		return x.MaxMarkerPaths
	}
	return 0
}

func (x *RepositoryAdoptionScanOptions) GetMarkerPathHints() []string {
	if x != nil {
		return x.MarkerPathHints
	}
	return nil
}

// ScanRepositoryForAdoptionRequest creates a safe, bounded provider-native repository snapshot.
type ScanRepositoryForAdoptionRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,1,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// repository_target identifies an existing provider repository.
	RepositoryTarget *ProviderTarget `protobuf:"bytes,2,opt,name=repository_target,json=repositoryTarget,proto3" json:"repository_target,omitempty"`
	// options bounds branch/ref selection and marker extraction.
	Options *RepositoryAdoptionScanOptions `protobuf:"bytes,3,opt,name=options,proto3" json:"options,omitempty"`
	// meta carries idempotency and audit context.
	Meta *CommandMeta `protobuf:"bytes,4,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account selected by caller policy for the provider read.
	ExternalAccountId string `protobuf:"bytes,5,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *ScanRepositoryForAdoptionRequest) Reset() {
	*x = ScanRepositoryForAdoptionRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[58]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ScanRepositoryForAdoptionRequest) ProtoMessage() {}

func (x *ScanRepositoryForAdoptionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[58]
	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 ScanRepositoryForAdoptionRequest.ProtoReflect.Descriptor instead.
func (*ScanRepositoryForAdoptionRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{58}
}

func (x *ScanRepositoryForAdoptionRequest) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *ScanRepositoryForAdoptionRequest) GetRepositoryTarget() *ProviderTarget {
	if x != nil {
		return x.RepositoryTarget
	}
	return nil
}

func (x *ScanRepositoryForAdoptionRequest) GetOptions() *RepositoryAdoptionScanOptions {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *ScanRepositoryForAdoptionRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *ScanRepositoryForAdoptionRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

// RepositoryAdoptionScanMarker is one safe marker path discovered without reading raw file content.
type RepositoryAdoptionScanMarker struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// path is a repository-relative safe path.
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// kind classifies the marker.
	Kind RepositoryAdoptionMarkerKind `protobuf:"varint,2,opt,name=kind,proto3,enum=kodex.providers.v1.RepositoryAdoptionMarkerKind" json:"kind,omitempty"`
	// object_digest is the provider object sha or equivalent digest, not file content.
	ObjectDigest string `protobuf:"bytes,3,opt,name=object_digest,json=objectDigest,proto3" json:"object_digest,omitempty"`
	// size_bytes is the provider-reported object size when available.
	SizeBytes     int64 `protobuf:"varint,4,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RepositoryAdoptionScanMarker) Reset() {
	*x = RepositoryAdoptionScanMarker{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[59]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RepositoryAdoptionScanMarker) ProtoMessage() {}

func (x *RepositoryAdoptionScanMarker) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[59]
	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 RepositoryAdoptionScanMarker.ProtoReflect.Descriptor instead.
func (*RepositoryAdoptionScanMarker) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{59}
}

func (x *RepositoryAdoptionScanMarker) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *RepositoryAdoptionScanMarker) GetKind() RepositoryAdoptionMarkerKind {
	if x != nil {
		return x.Kind
	}
	return RepositoryAdoptionMarkerKind_REPOSITORY_ADOPTION_MARKER_KIND_UNSPECIFIED
}

func (x *RepositoryAdoptionScanMarker) GetObjectDigest() string {
	if x != nil {
		return x.ObjectDigest
	}
	return ""
}

func (x *RepositoryAdoptionScanMarker) GetSizeBytes() int64 {
	if x != nil {
		return x.SizeBytes
	}
	return 0
}

// RepositoryAdoptionScanSnapshot is a safe provider-side summary for later adoption decisions.
type RepositoryAdoptionScanSnapshot struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// snapshot_id is the provider-hub persisted snapshot id.
	SnapshotId string `protobuf:"bytes,1,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"`
	// provider_operation_id links this snapshot to the audited operation.
	ProviderOperationId string `protobuf:"bytes,2,opt,name=provider_operation_id,json=providerOperationId,proto3" json:"provider_operation_id,omitempty"`
	// provider_slug identifies the provider adapter.
	ProviderSlug string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// external_account_id links the managed external account used for the scan.
	ExternalAccountId string `protobuf:"bytes,4,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	// repository_target repeats the safe repository target input.
	RepositoryTarget *ProviderTarget `protobuf:"bytes,5,opt,name=repository_target,json=repositoryTarget,proto3" json:"repository_target,omitempty"`
	// repository_full_name is the provider owner/name when known.
	RepositoryFullName string `protobuf:"bytes,6,opt,name=repository_full_name,json=repositoryFullName,proto3" json:"repository_full_name,omitempty"`
	// provider_repository_id is the provider repository id when known.
	ProviderRepositoryId string `protobuf:"bytes,7,opt,name=provider_repository_id,json=providerRepositoryId,proto3" json:"provider_repository_id,omitempty"`
	// repository_url is a provider web URL safe for UI and audit.
	RepositoryUrl string `protobuf:"bytes,8,opt,name=repository_url,json=repositoryUrl,proto3" json:"repository_url,omitempty"`
	// default_branch is provider default branch at scan time.
	DefaultBranch string `protobuf:"bytes,9,opt,name=default_branch,json=defaultBranch,proto3" json:"default_branch,omitempty"`
	// requested_ref is the caller requested branch/ref, empty when default branch was used.
	RequestedRef string `protobuf:"bytes,10,opt,name=requested_ref,json=requestedRef,proto3" json:"requested_ref,omitempty"`
	// scanned_ref is the concrete provider ref scanned.
	ScannedRef string `protobuf:"bytes,11,opt,name=scanned_ref,json=scannedRef,proto3" json:"scanned_ref,omitempty"`
	// head_sha is the scanned commit sha.
	HeadSha string `protobuf:"bytes,12,opt,name=head_sha,json=headSha,proto3" json:"head_sha,omitempty"`
	// status is the safe scan status.
	Status RepositoryAdoptionScanStatus `protobuf:"varint,13,opt,name=status,proto3,enum=kodex.providers.v1.RepositoryAdoptionScanStatus" json:"status,omitempty"`
	// markers are bounded safe file markers. Raw file content is not included.
	Markers []*RepositoryAdoptionScanMarker `protobuf:"bytes,14,rep,name=markers,proto3" json:"markers,omitempty"`
	// file_count is the provider-reported file count when known.
	FileCount int64 `protobuf:"varint,15,opt,name=file_count,json=fileCount,proto3" json:"file_count,omitempty"`
	// visible_file_count is the bounded count inspected by provider-hub.
	VisibleFileCount int64 `protobuf:"varint,16,opt,name=visible_file_count,json=visibleFileCount,proto3" json:"visible_file_count,omitempty"`
	// tree_truncated is true when provider or local bounds truncated tree inspection.
	TreeTruncated bool `protobuf:"varint,17,opt,name=tree_truncated,json=treeTruncated,proto3" json:"tree_truncated,omitempty"`
	// warnings are bounded safe machine-readable warning codes.
	Warnings []string `protobuf:"bytes,18,rep,name=warnings,proto3" json:"warnings,omitempty"`
	// snapshot_digest is a digest over safe snapshot fields.
	SnapshotDigest string `protobuf:"bytes,19,opt,name=snapshot_digest,json=snapshotDigest,proto3" json:"snapshot_digest,omitempty"`
	// observed_at is the scan observation time in RFC3339 format.
	ObservedAt string `protobuf:"bytes,20,opt,name=observed_at,json=observedAt,proto3" json:"observed_at,omitempty"`
	// version is the provider-hub snapshot projection version.
	Version int64 `protobuf:"varint,21,opt,name=version,proto3" json:"version,omitempty"`
	// etag is a stable safe read token based on provider-owned refs/digests/version.
	Etag string `protobuf:"bytes,22,opt,name=etag,proto3" json:"etag,omitempty"`
	// created_at is the provider-hub snapshot creation time in RFC3339 format.
	CreatedAt string `protobuf:"bytes,23,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// updated_at is the provider-hub snapshot update time in RFC3339 format.
	UpdatedAt     string `protobuf:"bytes,24,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RepositoryAdoptionScanSnapshot) Reset() {
	*x = RepositoryAdoptionScanSnapshot{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[60]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RepositoryAdoptionScanSnapshot) ProtoMessage() {}

func (x *RepositoryAdoptionScanSnapshot) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[60]
	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 RepositoryAdoptionScanSnapshot.ProtoReflect.Descriptor instead.
func (*RepositoryAdoptionScanSnapshot) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{60}
}

func (x *RepositoryAdoptionScanSnapshot) GetSnapshotId() string {
	if x != nil {
		return x.SnapshotId
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetProviderOperationId() string {
	if x != nil {
		return x.ProviderOperationId
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetRepositoryTarget() *ProviderTarget {
	if x != nil {
		return x.RepositoryTarget
	}
	return nil
}

func (x *RepositoryAdoptionScanSnapshot) GetRepositoryFullName() string {
	if x != nil {
		return x.RepositoryFullName
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetProviderRepositoryId() string {
	if x != nil {
		return x.ProviderRepositoryId
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetRepositoryUrl() string {
	if x != nil {
		return x.RepositoryUrl
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetDefaultBranch() string {
	if x != nil {
		return x.DefaultBranch
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetRequestedRef() string {
	if x != nil {
		return x.RequestedRef
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetScannedRef() string {
	if x != nil {
		return x.ScannedRef
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetHeadSha() string {
	if x != nil {
		return x.HeadSha
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetStatus() RepositoryAdoptionScanStatus {
	if x != nil {
		return x.Status
	}
	return RepositoryAdoptionScanStatus_REPOSITORY_ADOPTION_SCAN_STATUS_UNSPECIFIED
}

func (x *RepositoryAdoptionScanSnapshot) GetMarkers() []*RepositoryAdoptionScanMarker {
	if x != nil {
		return x.Markers
	}
	return nil
}

func (x *RepositoryAdoptionScanSnapshot) GetFileCount() int64 {
	if x != nil {
		return x.FileCount
	}
	return 0
}

func (x *RepositoryAdoptionScanSnapshot) GetVisibleFileCount() int64 {
	if x != nil {
		return x.VisibleFileCount
	}
	return 0
}

func (x *RepositoryAdoptionScanSnapshot) GetTreeTruncated() bool {
	if x != nil {
		return x.TreeTruncated
	}
	return false
}

func (x *RepositoryAdoptionScanSnapshot) GetWarnings() []string {
	if x != nil {
		return x.Warnings
	}
	return nil
}

func (x *RepositoryAdoptionScanSnapshot) GetSnapshotDigest() string {
	if x != nil {
		return x.SnapshotDigest
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetObservedAt() string {
	if x != nil {
		return x.ObservedAt
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *RepositoryAdoptionScanSnapshot) GetEtag() string {
	if x != nil {
		return x.Etag
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *RepositoryAdoptionScanSnapshot) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

// RepositoryMergeSignal is a safe provider-owned fact that an onboarding PR/MR was merged.
type RepositoryMergeSignal struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// signal_id is the provider-hub persisted signal id.
	SignalId string `protobuf:"bytes,1,opt,name=signal_id,json=signalId,proto3" json:"signal_id,omitempty"`
	// signal_key is the provider-hub idempotency key for this merge signal.
	SignalKey string `protobuf:"bytes,2,opt,name=signal_key,json=signalKey,proto3" json:"signal_key,omitempty"`
	// kind classifies bootstrap or adoption merge.
	Kind RepositoryMergeSignalKind `protobuf:"varint,3,opt,name=kind,proto3,enum=kodex.providers.v1.RepositoryMergeSignalKind" json:"kind,omitempty"`
	// provider_slug identifies the provider adapter.
	ProviderSlug string `protobuf:"bytes,4,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// project_id links the project-catalog project context known from the provider relationship.
	ProjectId string `protobuf:"bytes,5,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// repository_id links the project-catalog repository context known from the provider relationship.
	RepositoryId string `protobuf:"bytes,6,opt,name=repository_id,json=repositoryId,proto3" json:"repository_id,omitempty"`
	// repository_full_name is the safe provider owner/name.
	RepositoryFullName string `protobuf:"bytes,7,opt,name=repository_full_name,json=repositoryFullName,proto3" json:"repository_full_name,omitempty"`
	// provider_repository_id is the provider-native repository id when known.
	ProviderRepositoryId string `protobuf:"bytes,8,opt,name=provider_repository_id,json=providerRepositoryId,proto3" json:"provider_repository_id,omitempty"`
	// work_item_projection_id is the safe provider-hub PR/MR projection id.
	WorkItemProjectionId string `protobuf:"bytes,9,opt,name=work_item_projection_id,json=workItemProjectionId,proto3" json:"work_item_projection_id,omitempty"`
	// provider_work_item_id is the provider-hub provider-native work item id.
	ProviderWorkItemId string `protobuf:"bytes,10,opt,name=provider_work_item_id,json=providerWorkItemId,proto3" json:"provider_work_item_id,omitempty"`
	// pull_request_number is the provider PR/MR number.
	PullRequestNumber int64 `protobuf:"varint,11,opt,name=pull_request_number,json=pullRequestNumber,proto3" json:"pull_request_number,omitempty"`
	// pull_request_provider_id is the provider-native PR/MR object id.
	PullRequestProviderId string `protobuf:"bytes,12,opt,name=pull_request_provider_id,json=pullRequestProviderId,proto3" json:"pull_request_provider_id,omitempty"`
	// pull_request_url is the safe provider PR/MR URL.
	PullRequestUrl string `protobuf:"bytes,13,opt,name=pull_request_url,json=pullRequestUrl,proto3" json:"pull_request_url,omitempty"`
	// base_branch is the provider target branch that received the merge.
	BaseBranch string `protobuf:"bytes,14,opt,name=base_branch,json=baseBranch,proto3" json:"base_branch,omitempty"`
	// head_branch is the provider source branch observed on the PR/MR.
	HeadBranch string `protobuf:"bytes,15,opt,name=head_branch,json=headBranch,proto3" json:"head_branch,omitempty"`
	// merge_commit_sha is the provider merge commit sha.
	MergeCommitSha string `protobuf:"bytes,16,opt,name=merge_commit_sha,json=mergeCommitSha,proto3" json:"merge_commit_sha,omitempty"`
	// source_ref is the provider source ref bound to the onboarding operation.
	SourceRef string `protobuf:"bytes,17,opt,name=source_ref,json=sourceRef,proto3" json:"source_ref,omitempty"`
	// related_provider_operation_ref links the provider operation that created the onboarding PR/MR.
	RelatedProviderOperationRef string `protobuf:"bytes,18,opt,name=related_provider_operation_ref,json=relatedProviderOperationRef,proto3" json:"related_provider_operation_ref,omitempty"`
	// watermark_digest is the safe digest of the parsed platform watermark.
	WatermarkDigest string `protobuf:"bytes,19,opt,name=watermark_digest,json=watermarkDigest,proto3" json:"watermark_digest,omitempty"`
	// observed_at is the provider observation time in RFC3339 format.
	ObservedAt string `protobuf:"bytes,20,opt,name=observed_at,json=observedAt,proto3" json:"observed_at,omitempty"`
	// merged_at is the provider merge time in RFC3339 format.
	MergedAt string `protobuf:"bytes,21,opt,name=merged_at,json=mergedAt,proto3" json:"merged_at,omitempty"`
	// status is the provider-side merge signal status.
	Status RepositoryMergeSignalStatus `protobuf:"varint,22,opt,name=status,proto3,enum=kodex.providers.v1.RepositoryMergeSignalStatus" json:"status,omitempty"`
	// version is the provider-hub signal projection version.
	Version int64 `protobuf:"varint,23,opt,name=version,proto3" json:"version,omitempty"`
	// etag is a stable safe read token based on provider-owned refs/digests/version.
	Etag string `protobuf:"bytes,24,opt,name=etag,proto3" json:"etag,omitempty"`
	// created_at is the provider-hub signal creation time in RFC3339 format.
	CreatedAt string `protobuf:"bytes,25,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// updated_at is the provider-hub signal update time in RFC3339 format.
	UpdatedAt     string `protobuf:"bytes,26,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RepositoryMergeSignal) Reset() {
	*x = RepositoryMergeSignal{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[61]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RepositoryMergeSignal) ProtoMessage() {}

func (x *RepositoryMergeSignal) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[61]
	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 RepositoryMergeSignal.ProtoReflect.Descriptor instead.
func (*RepositoryMergeSignal) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{61}
}

func (x *RepositoryMergeSignal) GetSignalId() string {
	if x != nil {
		return x.SignalId
	}
	return ""
}

func (x *RepositoryMergeSignal) GetSignalKey() string {
	if x != nil {
		return x.SignalKey
	}
	return ""
}

func (x *RepositoryMergeSignal) GetKind() RepositoryMergeSignalKind {
	if x != nil {
		return x.Kind
	}
	return RepositoryMergeSignalKind_REPOSITORY_MERGE_SIGNAL_KIND_UNSPECIFIED
}

func (x *RepositoryMergeSignal) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *RepositoryMergeSignal) GetProjectId() string {
	if x != nil {
		return x.ProjectId
	}
	return ""
}

func (x *RepositoryMergeSignal) GetRepositoryId() string {
	if x != nil {
		return x.RepositoryId
	}
	return ""
}

func (x *RepositoryMergeSignal) GetRepositoryFullName() string {
	if x != nil {
		return x.RepositoryFullName
	}
	return ""
}

func (x *RepositoryMergeSignal) GetProviderRepositoryId() string {
	if x != nil {
		return x.ProviderRepositoryId
	}
	return ""
}

func (x *RepositoryMergeSignal) GetWorkItemProjectionId() string {
	if x != nil {
		return x.WorkItemProjectionId
	}
	return ""
}

func (x *RepositoryMergeSignal) GetProviderWorkItemId() string {
	if x != nil {
		return x.ProviderWorkItemId
	}
	return ""
}

func (x *RepositoryMergeSignal) GetPullRequestNumber() int64 {
	if x != nil {
		return x.PullRequestNumber
	}
	return 0
}

func (x *RepositoryMergeSignal) GetPullRequestProviderId() string {
	if x != nil {
		return x.PullRequestProviderId
	}
	return ""
}

func (x *RepositoryMergeSignal) GetPullRequestUrl() string {
	if x != nil {
		return x.PullRequestUrl
	}
	return ""
}

func (x *RepositoryMergeSignal) GetBaseBranch() string {
	if x != nil {
		return x.BaseBranch
	}
	return ""
}

func (x *RepositoryMergeSignal) GetHeadBranch() string {
	if x != nil {
		return x.HeadBranch
	}
	return ""
}

func (x *RepositoryMergeSignal) GetMergeCommitSha() string {
	if x != nil {
		return x.MergeCommitSha
	}
	return ""
}

func (x *RepositoryMergeSignal) GetSourceRef() string {
	if x != nil {
		return x.SourceRef
	}
	return ""
}

func (x *RepositoryMergeSignal) GetRelatedProviderOperationRef() string {
	if x != nil {
		return x.RelatedProviderOperationRef
	}
	return ""
}

func (x *RepositoryMergeSignal) GetWatermarkDigest() string {
	if x != nil {
		return x.WatermarkDigest
	}
	return ""
}

func (x *RepositoryMergeSignal) GetObservedAt() string {
	if x != nil {
		return x.ObservedAt
	}
	return ""
}

func (x *RepositoryMergeSignal) GetMergedAt() string {
	if x != nil {
		return x.MergedAt
	}
	return ""
}

func (x *RepositoryMergeSignal) GetStatus() RepositoryMergeSignalStatus {
	if x != nil {
		return x.Status
	}
	return RepositoryMergeSignalStatus_REPOSITORY_MERGE_SIGNAL_STATUS_UNSPECIFIED
}

func (x *RepositoryMergeSignal) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *RepositoryMergeSignal) GetEtag() string {
	if x != nil {
		return x.Etag
	}
	return ""
}

func (x *RepositoryMergeSignal) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *RepositoryMergeSignal) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

// GetRepositoryMergeSignalRequest reads one safe merge signal by stable provider-hub identity.
type GetRepositoryMergeSignalRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// signal_id optionally selects a provider-hub merge signal id.
	SignalId *string `protobuf:"bytes,1,opt,name=signal_id,json=signalId,proto3,oneof" json:"signal_id,omitempty"`
	// signal_key optionally selects a provider-hub merge signal idempotency key.
	SignalKey *string `protobuf:"bytes,2,opt,name=signal_key,json=signalKey,proto3,oneof" json:"signal_key,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,3,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetRepositoryMergeSignalRequest) Reset() {
	*x = GetRepositoryMergeSignalRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[62]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetRepositoryMergeSignalRequest) ProtoMessage() {}

func (x *GetRepositoryMergeSignalRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[62]
	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 GetRepositoryMergeSignalRequest.ProtoReflect.Descriptor instead.
func (*GetRepositoryMergeSignalRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{62}
}

func (x *GetRepositoryMergeSignalRequest) GetSignalId() string {
	if x != nil && x.SignalId != nil {
		return *x.SignalId
	}
	return ""
}

func (x *GetRepositoryMergeSignalRequest) GetSignalKey() string {
	if x != nil && x.SignalKey != nil {
		return *x.SignalKey
	}
	return ""
}

func (x *GetRepositoryMergeSignalRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// RepositoryMergeSignalResponse returns a safe merge signal or an explicit read status.
type RepositoryMergeSignalResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// read_status describes whether provider-owned data is ready for the caller.
	ReadStatus ProviderOwnedDataStatus `protobuf:"varint,1,opt,name=read_status,json=readStatus,proto3,enum=kodex.providers.v1.ProviderOwnedDataStatus" json:"read_status,omitempty"`
	// merge_signal is present when read_status is READY.
	MergeSignal   *RepositoryMergeSignal `protobuf:"bytes,2,opt,name=merge_signal,json=mergeSignal,proto3" json:"merge_signal,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RepositoryMergeSignalResponse) Reset() {
	*x = RepositoryMergeSignalResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[63]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RepositoryMergeSignalResponse) ProtoMessage() {}

func (x *RepositoryMergeSignalResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[63]
	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 RepositoryMergeSignalResponse.ProtoReflect.Descriptor instead.
func (*RepositoryMergeSignalResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{63}
}

func (x *RepositoryMergeSignalResponse) GetReadStatus() ProviderOwnedDataStatus {
	if x != nil {
		return x.ReadStatus
	}
	return ProviderOwnedDataStatus_PROVIDER_OWNED_DATA_STATUS_UNSPECIFIED
}

func (x *RepositoryMergeSignalResponse) GetMergeSignal() *RepositoryMergeSignal {
	if x != nil {
		return x.MergeSignal
	}
	return nil
}

// ListRepositoryMergeSignalsRequest lists safe merge signals by repository/project context.
type ListRepositoryMergeSignalsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// project_id optionally filters by project-catalog project context.
	ProjectId *string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3,oneof" json:"project_id,omitempty"`
	// repository_id optionally filters by project-catalog repository context.
	RepositoryId *string `protobuf:"bytes,2,opt,name=repository_id,json=repositoryId,proto3,oneof" json:"repository_id,omitempty"`
	// provider_slug optionally filters provider.
	ProviderSlug *string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3,oneof" json:"provider_slug,omitempty"`
	// repository_full_name optionally filters provider owner/name.
	RepositoryFullName *string `protobuf:"bytes,4,opt,name=repository_full_name,json=repositoryFullName,proto3,oneof" json:"repository_full_name,omitempty"`
	// provider_repository_id optionally filters provider-native repository id.
	ProviderRepositoryId *string `protobuf:"bytes,5,opt,name=provider_repository_id,json=providerRepositoryId,proto3,oneof" json:"provider_repository_id,omitempty"`
	// kinds optionally filter bootstrap/adoption signal kind.
	Kinds []RepositoryMergeSignalKind `protobuf:"varint,6,rep,packed,name=kinds,proto3,enum=kodex.providers.v1.RepositoryMergeSignalKind" json:"kinds,omitempty"`
	// statuses optionally filter provider-side signal status.
	Statuses []RepositoryMergeSignalStatus `protobuf:"varint,7,rep,packed,name=statuses,proto3,enum=kodex.providers.v1.RepositoryMergeSignalStatus" json:"statuses,omitempty"`
	// pull_request_number optionally filters a provider PR/MR number.
	PullRequestNumber *int64 `protobuf:"varint,8,opt,name=pull_request_number,json=pullRequestNumber,proto3,oneof" json:"pull_request_number,omitempty"`
	// merged_since optionally filters lower merge time in RFC3339 format.
	MergedSince *string `protobuf:"bytes,9,opt,name=merged_since,json=mergedSince,proto3,oneof" json:"merged_since,omitempty"`
	// page limits response size.
	Page *PageRequest `protobuf:"bytes,10,opt,name=page,proto3" json:"page,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,11,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListRepositoryMergeSignalsRequest) Reset() {
	*x = ListRepositoryMergeSignalsRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[64]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListRepositoryMergeSignalsRequest) ProtoMessage() {}

func (x *ListRepositoryMergeSignalsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[64]
	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 ListRepositoryMergeSignalsRequest.ProtoReflect.Descriptor instead.
func (*ListRepositoryMergeSignalsRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{64}
}

func (x *ListRepositoryMergeSignalsRequest) GetProjectId() string {
	if x != nil && x.ProjectId != nil {
		return *x.ProjectId
	}
	return ""
}

func (x *ListRepositoryMergeSignalsRequest) GetRepositoryId() string {
	if x != nil && x.RepositoryId != nil {
		return *x.RepositoryId
	}
	return ""
}

func (x *ListRepositoryMergeSignalsRequest) GetProviderSlug() string {
	if x != nil && x.ProviderSlug != nil {
		return *x.ProviderSlug
	}
	return ""
}

func (x *ListRepositoryMergeSignalsRequest) GetRepositoryFullName() string {
	if x != nil && x.RepositoryFullName != nil {
		return *x.RepositoryFullName
	}
	return ""
}

func (x *ListRepositoryMergeSignalsRequest) GetProviderRepositoryId() string {
	if x != nil && x.ProviderRepositoryId != nil {
		return *x.ProviderRepositoryId
	}
	return ""
}

func (x *ListRepositoryMergeSignalsRequest) GetKinds() []RepositoryMergeSignalKind {
	if x != nil {
		return x.Kinds
	}
	return nil
}

func (x *ListRepositoryMergeSignalsRequest) GetStatuses() []RepositoryMergeSignalStatus {
	if x != nil {
		return x.Statuses
	}
	return nil
}

func (x *ListRepositoryMergeSignalsRequest) GetPullRequestNumber() int64 {
	if x != nil && x.PullRequestNumber != nil {
		return *x.PullRequestNumber
	}
	return 0
}

func (x *ListRepositoryMergeSignalsRequest) GetMergedSince() string {
	if x != nil && x.MergedSince != nil {
		return *x.MergedSince
	}
	return ""
}

func (x *ListRepositoryMergeSignalsRequest) GetPage() *PageRequest {
	if x != nil {
		return x.Page
	}
	return nil
}

func (x *ListRepositoryMergeSignalsRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ListRepositoryMergeSignalsResponse returns safe merge signals in stable server-defined order.
type ListRepositoryMergeSignalsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// merge_signals are returned newest first.
	MergeSignals []*RepositoryMergeSignal `protobuf:"bytes,1,rep,name=merge_signals,json=mergeSignals,proto3" json:"merge_signals,omitempty"`
	// page describes continuation state.
	Page          *PageResponse `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListRepositoryMergeSignalsResponse) Reset() {
	*x = ListRepositoryMergeSignalsResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[65]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListRepositoryMergeSignalsResponse) ProtoMessage() {}

func (x *ListRepositoryMergeSignalsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[65]
	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 ListRepositoryMergeSignalsResponse.ProtoReflect.Descriptor instead.
func (*ListRepositoryMergeSignalsResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{65}
}

func (x *ListRepositoryMergeSignalsResponse) GetMergeSignals() []*RepositoryMergeSignal {
	if x != nil {
		return x.MergeSignals
	}
	return nil
}

func (x *ListRepositoryMergeSignalsResponse) GetPage() *PageResponse {
	if x != nil {
		return x.Page
	}
	return nil
}

// RepositoryChangePathCategoryCount stores one safe changed-path category count.
type RepositoryChangePathCategoryCount struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// category is the safe path category.
	Category RepositoryChangePathCategory `protobuf:"varint,1,opt,name=category,proto3,enum=kodex.providers.v1.RepositoryChangePathCategory" json:"category,omitempty"`
	// count is the number of changed paths in the category.
	Count         int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RepositoryChangePathCategoryCount) Reset() {
	*x = RepositoryChangePathCategoryCount{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[66]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RepositoryChangePathCategoryCount) ProtoMessage() {}

func (x *RepositoryChangePathCategoryCount) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[66]
	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 RepositoryChangePathCategoryCount.ProtoReflect.Descriptor instead.
func (*RepositoryChangePathCategoryCount) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{66}
}

func (x *RepositoryChangePathCategoryCount) GetCategory() RepositoryChangePathCategory {
	if x != nil {
		return x.Category
	}
	return RepositoryChangePathCategory_REPOSITORY_CHANGE_PATH_CATEGORY_UNSPECIFIED
}

func (x *RepositoryChangePathCategoryCount) GetCount() int64 {
	if x != nil {
		return x.Count
	}
	return 0
}

// RepositoryChangeSignal is a safe provider-owned fact that repository contents changed.
type RepositoryChangeSignal struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// signal_id is the provider-hub persisted signal id.
	SignalId string `protobuf:"bytes,1,opt,name=signal_id,json=signalId,proto3" json:"signal_id,omitempty"`
	// signal_key is the provider-hub idempotency key for this repository change signal.
	SignalKey string `protobuf:"bytes,2,opt,name=signal_key,json=signalKey,proto3" json:"signal_key,omitempty"`
	// kind classifies push or pull_request merged signals.
	Kind RepositoryChangeSignalKind `protobuf:"varint,3,opt,name=kind,proto3,enum=kodex.providers.v1.RepositoryChangeSignalKind" json:"kind,omitempty"`
	// provider_slug identifies the provider adapter.
	ProviderSlug string `protobuf:"bytes,4,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// project_id links project context when provider-hub already knows it.
	ProjectId string `protobuf:"bytes,5,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// repository_id links repository context when provider-hub already knows it.
	RepositoryId string `protobuf:"bytes,6,opt,name=repository_id,json=repositoryId,proto3" json:"repository_id,omitempty"`
	// repository_full_name is the safe provider owner/name.
	RepositoryFullName string `protobuf:"bytes,7,opt,name=repository_full_name,json=repositoryFullName,proto3" json:"repository_full_name,omitempty"`
	// provider_repository_id is the provider-native repository id when known.
	ProviderRepositoryId string `protobuf:"bytes,8,opt,name=provider_repository_id,json=providerRepositoryId,proto3" json:"provider_repository_id,omitempty"`
	// ref is the provider ref that changed, for example refs/heads/main.
	Ref string `protobuf:"bytes,9,opt,name=ref,proto3" json:"ref,omitempty"`
	// base_branch is the target branch name, for example main.
	BaseBranch string `protobuf:"bytes,10,opt,name=base_branch,json=baseBranch,proto3" json:"base_branch,omitempty"`
	// commit_sha is the observed head or merge commit sha.
	CommitSha string `protobuf:"bytes,11,opt,name=commit_sha,json=commitSha,proto3" json:"commit_sha,omitempty"`
	// before_sha is the previous head sha for push signals when known.
	BeforeSha string `protobuf:"bytes,12,opt,name=before_sha,json=beforeSha,proto3" json:"before_sha,omitempty"`
	// source_ref is the PR/MR source ref for pull_request merged signals when known.
	SourceRef string `protobuf:"bytes,13,opt,name=source_ref,json=sourceRef,proto3" json:"source_ref,omitempty"`
	// pull_request_number is set for pull_request merged signals.
	PullRequestNumber int64 `protobuf:"varint,14,opt,name=pull_request_number,json=pullRequestNumber,proto3" json:"pull_request_number,omitempty"`
	// pull_request_provider_id is the provider-native PR/MR id when known.
	PullRequestProviderId string `protobuf:"bytes,15,opt,name=pull_request_provider_id,json=pullRequestProviderId,proto3" json:"pull_request_provider_id,omitempty"`
	// pull_request_url is the safe provider PR/MR URL.
	PullRequestUrl string `protobuf:"bytes,16,opt,name=pull_request_url,json=pullRequestUrl,proto3" json:"pull_request_url,omitempty"`
	// path_summary_status tells whether path categories are ready, unavailable or truncated.
	PathSummaryStatus RepositoryChangePathSummaryStatus `protobuf:"varint,17,opt,name=path_summary_status,json=pathSummaryStatus,proto3,enum=kodex.providers.v1.RepositoryChangePathSummaryStatus" json:"path_summary_status,omitempty"`
	// changed_path_count is a bounded count of unique changed paths seen by provider-hub.
	ChangedPathCount int64 `protobuf:"varint,18,opt,name=changed_path_count,json=changedPathCount,proto3" json:"changed_path_count,omitempty"`
	// path_digest is a digest over safe path identities, not a raw path list.
	PathDigest string `protobuf:"bytes,19,opt,name=path_digest,json=pathDigest,proto3" json:"path_digest,omitempty"`
	// path_categories are safe category counters without raw paths or file contents.
	PathCategories []*RepositoryChangePathCategoryCount `protobuf:"bytes,20,rep,name=path_categories,json=pathCategories,proto3" json:"path_categories,omitempty"`
	// services_policy_changed is true when root services.yaml changed.
	ServicesPolicyChanged bool `protobuf:"varint,21,opt,name=services_policy_changed,json=servicesPolicyChanged,proto3" json:"services_policy_changed,omitempty"`
	// deploy_relevant_changed is true when provider-hub saw deploy-relevant path categories.
	DeployRelevantChanged bool `protobuf:"varint,22,opt,name=deploy_relevant_changed,json=deployRelevantChanged,proto3" json:"deploy_relevant_changed,omitempty"`
	// change_fingerprint is the provider-hub fingerprint for idempotency/conflict checks.
	ChangeFingerprint string `protobuf:"bytes,23,opt,name=change_fingerprint,json=changeFingerprint,proto3" json:"change_fingerprint,omitempty"`
	// observed_at is the provider observation time in RFC3339 format.
	ObservedAt string `protobuf:"bytes,24,opt,name=observed_at,json=observedAt,proto3" json:"observed_at,omitempty"`
	// status is the provider-side repository change signal status.
	Status RepositoryChangeSignalStatus `protobuf:"varint,25,opt,name=status,proto3,enum=kodex.providers.v1.RepositoryChangeSignalStatus" json:"status,omitempty"`
	// version is the provider-hub signal projection version.
	Version int64 `protobuf:"varint,26,opt,name=version,proto3" json:"version,omitempty"`
	// etag is a stable safe read token based on provider-owned refs/digests/version.
	Etag string `protobuf:"bytes,27,opt,name=etag,proto3" json:"etag,omitempty"`
	// created_at is the provider-hub signal creation time in RFC3339 format.
	CreatedAt string `protobuf:"bytes,28,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// updated_at is the provider-hub signal update time in RFC3339 format.
	UpdatedAt     string `protobuf:"bytes,29,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RepositoryChangeSignal) Reset() {
	*x = RepositoryChangeSignal{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[67]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RepositoryChangeSignal) ProtoMessage() {}

func (x *RepositoryChangeSignal) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[67]
	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 RepositoryChangeSignal.ProtoReflect.Descriptor instead.
func (*RepositoryChangeSignal) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{67}
}

func (x *RepositoryChangeSignal) GetSignalId() string {
	if x != nil {
		return x.SignalId
	}
	return ""
}

func (x *RepositoryChangeSignal) GetSignalKey() string {
	if x != nil {
		return x.SignalKey
	}
	return ""
}

func (x *RepositoryChangeSignal) GetKind() RepositoryChangeSignalKind {
	if x != nil {
		return x.Kind
	}
	return RepositoryChangeSignalKind_REPOSITORY_CHANGE_SIGNAL_KIND_UNSPECIFIED
}

func (x *RepositoryChangeSignal) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *RepositoryChangeSignal) GetProjectId() string {
	if x != nil {
		return x.ProjectId
	}
	return ""
}

func (x *RepositoryChangeSignal) GetRepositoryId() string {
	if x != nil {
		return x.RepositoryId
	}
	return ""
}

func (x *RepositoryChangeSignal) GetRepositoryFullName() string {
	if x != nil {
		return x.RepositoryFullName
	}
	return ""
}

func (x *RepositoryChangeSignal) GetProviderRepositoryId() string {
	if x != nil {
		return x.ProviderRepositoryId
	}
	return ""
}

func (x *RepositoryChangeSignal) GetRef() string {
	if x != nil {
		return x.Ref
	}
	return ""
}

func (x *RepositoryChangeSignal) GetBaseBranch() string {
	if x != nil {
		return x.BaseBranch
	}
	return ""
}

func (x *RepositoryChangeSignal) GetCommitSha() string {
	if x != nil {
		return x.CommitSha
	}
	return ""
}

func (x *RepositoryChangeSignal) GetBeforeSha() string {
	if x != nil {
		return x.BeforeSha
	}
	return ""
}

func (x *RepositoryChangeSignal) GetSourceRef() string {
	if x != nil {
		return x.SourceRef
	}
	return ""
}

func (x *RepositoryChangeSignal) GetPullRequestNumber() int64 {
	if x != nil {
		return x.PullRequestNumber
	}
	return 0
}

func (x *RepositoryChangeSignal) GetPullRequestProviderId() string {
	if x != nil {
		return x.PullRequestProviderId
	}
	return ""
}

func (x *RepositoryChangeSignal) GetPullRequestUrl() string {
	if x != nil {
		return x.PullRequestUrl
	}
	return ""
}

func (x *RepositoryChangeSignal) GetPathSummaryStatus() RepositoryChangePathSummaryStatus {
	if x != nil {
		return x.PathSummaryStatus
	}
	return RepositoryChangePathSummaryStatus_REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_UNSPECIFIED
}

func (x *RepositoryChangeSignal) GetChangedPathCount() int64 {
	if x != nil {
		return x.ChangedPathCount
	}
	return 0
}

func (x *RepositoryChangeSignal) GetPathDigest() string {
	if x != nil {
		return x.PathDigest
	}
	return ""
}

func (x *RepositoryChangeSignal) GetPathCategories() []*RepositoryChangePathCategoryCount {
	if x != nil {
		return x.PathCategories
	}
	return nil
}

func (x *RepositoryChangeSignal) GetServicesPolicyChanged() bool {
	if x != nil {
		return x.ServicesPolicyChanged
	}
	return false
}

func (x *RepositoryChangeSignal) GetDeployRelevantChanged() bool {
	if x != nil {
		return x.DeployRelevantChanged
	}
	return false
}

func (x *RepositoryChangeSignal) GetChangeFingerprint() string {
	if x != nil {
		return x.ChangeFingerprint
	}
	return ""
}

func (x *RepositoryChangeSignal) GetObservedAt() string {
	if x != nil {
		return x.ObservedAt
	}
	return ""
}

func (x *RepositoryChangeSignal) GetStatus() RepositoryChangeSignalStatus {
	if x != nil {
		return x.Status
	}
	return RepositoryChangeSignalStatus_REPOSITORY_CHANGE_SIGNAL_STATUS_UNSPECIFIED
}

func (x *RepositoryChangeSignal) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *RepositoryChangeSignal) GetEtag() string {
	if x != nil {
		return x.Etag
	}
	return ""
}

func (x *RepositoryChangeSignal) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *RepositoryChangeSignal) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

// GetRepositoryChangeSignalRequest reads one safe repository change signal by stable provider-hub identity.
type GetRepositoryChangeSignalRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// signal_id optionally selects a provider-hub repository change signal id.
	SignalId *string `protobuf:"bytes,1,opt,name=signal_id,json=signalId,proto3,oneof" json:"signal_id,omitempty"`
	// signal_key optionally selects a provider-hub repository change signal idempotency key.
	SignalKey *string `protobuf:"bytes,2,opt,name=signal_key,json=signalKey,proto3,oneof" json:"signal_key,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,3,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetRepositoryChangeSignalRequest) Reset() {
	*x = GetRepositoryChangeSignalRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[68]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetRepositoryChangeSignalRequest) ProtoMessage() {}

func (x *GetRepositoryChangeSignalRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[68]
	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 GetRepositoryChangeSignalRequest.ProtoReflect.Descriptor instead.
func (*GetRepositoryChangeSignalRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{68}
}

func (x *GetRepositoryChangeSignalRequest) GetSignalId() string {
	if x != nil && x.SignalId != nil {
		return *x.SignalId
	}
	return ""
}

func (x *GetRepositoryChangeSignalRequest) GetSignalKey() string {
	if x != nil && x.SignalKey != nil {
		return *x.SignalKey
	}
	return ""
}

func (x *GetRepositoryChangeSignalRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// RepositoryChangeSignalResponse returns a safe repository change signal or an explicit read status.
type RepositoryChangeSignalResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// read_status describes whether provider-owned data is ready for the caller.
	ReadStatus ProviderOwnedDataStatus `protobuf:"varint,1,opt,name=read_status,json=readStatus,proto3,enum=kodex.providers.v1.ProviderOwnedDataStatus" json:"read_status,omitempty"`
	// change_signal is present when read_status is READY.
	ChangeSignal  *RepositoryChangeSignal `protobuf:"bytes,2,opt,name=change_signal,json=changeSignal,proto3" json:"change_signal,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RepositoryChangeSignalResponse) Reset() {
	*x = RepositoryChangeSignalResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[69]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RepositoryChangeSignalResponse) ProtoMessage() {}

func (x *RepositoryChangeSignalResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[69]
	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 RepositoryChangeSignalResponse.ProtoReflect.Descriptor instead.
func (*RepositoryChangeSignalResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{69}
}

func (x *RepositoryChangeSignalResponse) GetReadStatus() ProviderOwnedDataStatus {
	if x != nil {
		return x.ReadStatus
	}
	return ProviderOwnedDataStatus_PROVIDER_OWNED_DATA_STATUS_UNSPECIFIED
}

func (x *RepositoryChangeSignalResponse) GetChangeSignal() *RepositoryChangeSignal {
	if x != nil {
		return x.ChangeSignal
	}
	return nil
}

// ListRepositoryChangeSignalsRequest lists safe repository change signals by repository/project context.
type ListRepositoryChangeSignalsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// project_id optionally filters by project-catalog project context.
	ProjectId *string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3,oneof" json:"project_id,omitempty"`
	// repository_id optionally filters by project-catalog repository context.
	RepositoryId *string `protobuf:"bytes,2,opt,name=repository_id,json=repositoryId,proto3,oneof" json:"repository_id,omitempty"`
	// provider_slug optionally filters provider.
	ProviderSlug *string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3,oneof" json:"provider_slug,omitempty"`
	// repository_full_name optionally filters provider owner/name.
	RepositoryFullName *string `protobuf:"bytes,4,opt,name=repository_full_name,json=repositoryFullName,proto3,oneof" json:"repository_full_name,omitempty"`
	// provider_repository_id optionally filters provider-native repository id.
	ProviderRepositoryId *string `protobuf:"bytes,5,opt,name=provider_repository_id,json=providerRepositoryId,proto3,oneof" json:"provider_repository_id,omitempty"`
	// kinds optionally filter push or pull_request merged signal kind.
	Kinds []RepositoryChangeSignalKind `protobuf:"varint,6,rep,packed,name=kinds,proto3,enum=kodex.providers.v1.RepositoryChangeSignalKind" json:"kinds,omitempty"`
	// statuses optionally filter provider-side signal status.
	Statuses []RepositoryChangeSignalStatus `protobuf:"varint,7,rep,packed,name=statuses,proto3,enum=kodex.providers.v1.RepositoryChangeSignalStatus" json:"statuses,omitempty"`
	// base_branch optionally filters the target branch.
	BaseBranch *string `protobuf:"bytes,8,opt,name=base_branch,json=baseBranch,proto3,oneof" json:"base_branch,omitempty"`
	// commit_sha optionally filters the observed head or merge commit sha.
	CommitSha *string `protobuf:"bytes,9,opt,name=commit_sha,json=commitSha,proto3,oneof" json:"commit_sha,omitempty"`
	// services_policy_changed optionally filters root services.yaml changes.
	ServicesPolicyChanged *bool `protobuf:"varint,10,opt,name=services_policy_changed,json=servicesPolicyChanged,proto3,oneof" json:"services_policy_changed,omitempty"`
	// deploy_relevant_changed optionally filters deploy-relevant path categories.
	DeployRelevantChanged *bool `protobuf:"varint,11,opt,name=deploy_relevant_changed,json=deployRelevantChanged,proto3,oneof" json:"deploy_relevant_changed,omitempty"`
	// observed_since optionally filters lower observation time in RFC3339 format.
	ObservedSince *string `protobuf:"bytes,12,opt,name=observed_since,json=observedSince,proto3,oneof" json:"observed_since,omitempty"`
	// page limits response size.
	Page *PageRequest `protobuf:"bytes,13,opt,name=page,proto3" json:"page,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,14,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListRepositoryChangeSignalsRequest) Reset() {
	*x = ListRepositoryChangeSignalsRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[70]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListRepositoryChangeSignalsRequest) ProtoMessage() {}

func (x *ListRepositoryChangeSignalsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[70]
	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 ListRepositoryChangeSignalsRequest.ProtoReflect.Descriptor instead.
func (*ListRepositoryChangeSignalsRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{70}
}

func (x *ListRepositoryChangeSignalsRequest) GetProjectId() string {
	if x != nil && x.ProjectId != nil {
		return *x.ProjectId
	}
	return ""
}

func (x *ListRepositoryChangeSignalsRequest) GetRepositoryId() string {
	if x != nil && x.RepositoryId != nil {
		return *x.RepositoryId
	}
	return ""
}

func (x *ListRepositoryChangeSignalsRequest) GetProviderSlug() string {
	if x != nil && x.ProviderSlug != nil {
		return *x.ProviderSlug
	}
	return ""
}

func (x *ListRepositoryChangeSignalsRequest) GetRepositoryFullName() string {
	if x != nil && x.RepositoryFullName != nil {
		return *x.RepositoryFullName
	}
	return ""
}

func (x *ListRepositoryChangeSignalsRequest) GetProviderRepositoryId() string {
	if x != nil && x.ProviderRepositoryId != nil {
		return *x.ProviderRepositoryId
	}
	return ""
}

func (x *ListRepositoryChangeSignalsRequest) GetKinds() []RepositoryChangeSignalKind {
	if x != nil {
		return x.Kinds
	}
	return nil
}

func (x *ListRepositoryChangeSignalsRequest) GetStatuses() []RepositoryChangeSignalStatus {
	if x != nil {
		return x.Statuses
	}
	return nil
}

func (x *ListRepositoryChangeSignalsRequest) GetBaseBranch() string {
	if x != nil && x.BaseBranch != nil {
		return *x.BaseBranch
	}
	return ""
}

func (x *ListRepositoryChangeSignalsRequest) GetCommitSha() string {
	if x != nil && x.CommitSha != nil {
		return *x.CommitSha
	}
	return ""
}

func (x *ListRepositoryChangeSignalsRequest) GetServicesPolicyChanged() bool {
	if x != nil && x.ServicesPolicyChanged != nil {
		return *x.ServicesPolicyChanged
	}
	return false
}

func (x *ListRepositoryChangeSignalsRequest) GetDeployRelevantChanged() bool {
	if x != nil && x.DeployRelevantChanged != nil {
		return *x.DeployRelevantChanged
	}
	return false
}

func (x *ListRepositoryChangeSignalsRequest) GetObservedSince() string {
	if x != nil && x.ObservedSince != nil {
		return *x.ObservedSince
	}
	return ""
}

func (x *ListRepositoryChangeSignalsRequest) GetPage() *PageRequest {
	if x != nil {
		return x.Page
	}
	return nil
}

func (x *ListRepositoryChangeSignalsRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ListRepositoryChangeSignalsResponse returns safe repository change signals in stable server-defined order.
type ListRepositoryChangeSignalsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// change_signals are returned newest first.
	ChangeSignals []*RepositoryChangeSignal `protobuf:"bytes,1,rep,name=change_signals,json=changeSignals,proto3" json:"change_signals,omitempty"`
	// page describes continuation state.
	Page          *PageResponse `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListRepositoryChangeSignalsResponse) Reset() {
	*x = ListRepositoryChangeSignalsResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[71]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListRepositoryChangeSignalsResponse) ProtoMessage() {}

func (x *ListRepositoryChangeSignalsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[71]
	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 ListRepositoryChangeSignalsResponse.ProtoReflect.Descriptor instead.
func (*ListRepositoryChangeSignalsResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{71}
}

func (x *ListRepositoryChangeSignalsResponse) GetChangeSignals() []*RepositoryChangeSignal {
	if x != nil {
		return x.ChangeSignals
	}
	return nil
}

func (x *ListRepositoryChangeSignalsResponse) GetPage() *PageResponse {
	if x != nil {
		return x.Page
	}
	return nil
}

// GetRepositoryAdoptionScanSnapshotRequest reads one safe adoption scan snapshot by stable identity.
type GetRepositoryAdoptionScanSnapshotRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// snapshot_id optionally selects a provider-hub snapshot id.
	SnapshotId *string `protobuf:"bytes,1,opt,name=snapshot_id,json=snapshotId,proto3,oneof" json:"snapshot_id,omitempty"`
	// snapshot_key optionally selects a provider-hub snapshot idempotency key.
	SnapshotKey *string `protobuf:"bytes,2,opt,name=snapshot_key,json=snapshotKey,proto3,oneof" json:"snapshot_key,omitempty"`
	// provider_operation_id optionally selects the operation that produced the snapshot.
	ProviderOperationId *string `protobuf:"bytes,3,opt,name=provider_operation_id,json=providerOperationId,proto3,oneof" json:"provider_operation_id,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,4,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetRepositoryAdoptionScanSnapshotRequest) Reset() {
	*x = GetRepositoryAdoptionScanSnapshotRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[72]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetRepositoryAdoptionScanSnapshotRequest) ProtoMessage() {}

func (x *GetRepositoryAdoptionScanSnapshotRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[72]
	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 GetRepositoryAdoptionScanSnapshotRequest.ProtoReflect.Descriptor instead.
func (*GetRepositoryAdoptionScanSnapshotRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{72}
}

func (x *GetRepositoryAdoptionScanSnapshotRequest) GetSnapshotId() string {
	if x != nil && x.SnapshotId != nil {
		return *x.SnapshotId
	}
	return ""
}

func (x *GetRepositoryAdoptionScanSnapshotRequest) GetSnapshotKey() string {
	if x != nil && x.SnapshotKey != nil {
		return *x.SnapshotKey
	}
	return ""
}

func (x *GetRepositoryAdoptionScanSnapshotRequest) GetProviderOperationId() string {
	if x != nil && x.ProviderOperationId != nil {
		return *x.ProviderOperationId
	}
	return ""
}

func (x *GetRepositoryAdoptionScanSnapshotRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// RepositoryAdoptionScanSnapshotResponse returns a safe scan snapshot or an explicit read status.
type RepositoryAdoptionScanSnapshotResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// read_status describes whether provider-owned data is ready for the caller.
	ReadStatus ProviderOwnedDataStatus `protobuf:"varint,1,opt,name=read_status,json=readStatus,proto3,enum=kodex.providers.v1.ProviderOwnedDataStatus" json:"read_status,omitempty"`
	// adoption_scan_snapshot is present when read_status is READY.
	AdoptionScanSnapshot *RepositoryAdoptionScanSnapshot `protobuf:"bytes,2,opt,name=adoption_scan_snapshot,json=adoptionScanSnapshot,proto3" json:"adoption_scan_snapshot,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *RepositoryAdoptionScanSnapshotResponse) Reset() {
	*x = RepositoryAdoptionScanSnapshotResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[73]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RepositoryAdoptionScanSnapshotResponse) ProtoMessage() {}

func (x *RepositoryAdoptionScanSnapshotResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[73]
	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 RepositoryAdoptionScanSnapshotResponse.ProtoReflect.Descriptor instead.
func (*RepositoryAdoptionScanSnapshotResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{73}
}

func (x *RepositoryAdoptionScanSnapshotResponse) GetReadStatus() ProviderOwnedDataStatus {
	if x != nil {
		return x.ReadStatus
	}
	return ProviderOwnedDataStatus_PROVIDER_OWNED_DATA_STATUS_UNSPECIFIED
}

func (x *RepositoryAdoptionScanSnapshotResponse) GetAdoptionScanSnapshot() *RepositoryAdoptionScanSnapshot {
	if x != nil {
		return x.AdoptionScanSnapshot
	}
	return nil
}

// ListRepositoryAdoptionScanSnapshotsRequest lists safe scan snapshots by repository/project context.
type ListRepositoryAdoptionScanSnapshotsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// project_id optionally filters by project context recorded on the provider operation policy.
	ProjectId *string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3,oneof" json:"project_id,omitempty"`
	// repository_id optionally filters by repository context recorded on the provider operation policy.
	RepositoryId *string `protobuf:"bytes,2,opt,name=repository_id,json=repositoryId,proto3,oneof" json:"repository_id,omitempty"`
	// provider_slug optionally filters provider.
	ProviderSlug *string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3,oneof" json:"provider_slug,omitempty"`
	// external_account_id optionally filters access-manager external account.
	ExternalAccountId *string `protobuf:"bytes,4,opt,name=external_account_id,json=externalAccountId,proto3,oneof" json:"external_account_id,omitempty"`
	// repository_full_name optionally filters provider owner/name.
	RepositoryFullName *string `protobuf:"bytes,5,opt,name=repository_full_name,json=repositoryFullName,proto3,oneof" json:"repository_full_name,omitempty"`
	// provider_repository_id optionally filters provider-native repository id.
	ProviderRepositoryId *string `protobuf:"bytes,6,opt,name=provider_repository_id,json=providerRepositoryId,proto3,oneof" json:"provider_repository_id,omitempty"`
	// statuses optionally filter snapshot status.
	Statuses []RepositoryAdoptionScanStatus `protobuf:"varint,7,rep,packed,name=statuses,proto3,enum=kodex.providers.v1.RepositoryAdoptionScanStatus" json:"statuses,omitempty"`
	// observed_since optionally filters lower observation time in RFC3339 format.
	ObservedSince *string `protobuf:"bytes,8,opt,name=observed_since,json=observedSince,proto3,oneof" json:"observed_since,omitempty"`
	// page limits response size.
	Page *PageRequest `protobuf:"bytes,9,opt,name=page,proto3" json:"page,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,10,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListRepositoryAdoptionScanSnapshotsRequest) Reset() {
	*x = ListRepositoryAdoptionScanSnapshotsRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[74]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListRepositoryAdoptionScanSnapshotsRequest) ProtoMessage() {}

func (x *ListRepositoryAdoptionScanSnapshotsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[74]
	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 ListRepositoryAdoptionScanSnapshotsRequest.ProtoReflect.Descriptor instead.
func (*ListRepositoryAdoptionScanSnapshotsRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{74}
}

func (x *ListRepositoryAdoptionScanSnapshotsRequest) GetProjectId() string {
	if x != nil && x.ProjectId != nil {
		return *x.ProjectId
	}
	return ""
}

func (x *ListRepositoryAdoptionScanSnapshotsRequest) GetRepositoryId() string {
	if x != nil && x.RepositoryId != nil {
		return *x.RepositoryId
	}
	return ""
}

func (x *ListRepositoryAdoptionScanSnapshotsRequest) GetProviderSlug() string {
	if x != nil && x.ProviderSlug != nil {
		return *x.ProviderSlug
	}
	return ""
}

func (x *ListRepositoryAdoptionScanSnapshotsRequest) GetExternalAccountId() string {
	if x != nil && x.ExternalAccountId != nil {
		return *x.ExternalAccountId
	}
	return ""
}

func (x *ListRepositoryAdoptionScanSnapshotsRequest) GetRepositoryFullName() string {
	if x != nil && x.RepositoryFullName != nil {
		return *x.RepositoryFullName
	}
	return ""
}

func (x *ListRepositoryAdoptionScanSnapshotsRequest) GetProviderRepositoryId() string {
	if x != nil && x.ProviderRepositoryId != nil {
		return *x.ProviderRepositoryId
	}
	return ""
}

func (x *ListRepositoryAdoptionScanSnapshotsRequest) GetStatuses() []RepositoryAdoptionScanStatus {
	if x != nil {
		return x.Statuses
	}
	return nil
}

func (x *ListRepositoryAdoptionScanSnapshotsRequest) GetObservedSince() string {
	if x != nil && x.ObservedSince != nil {
		return *x.ObservedSince
	}
	return ""
}

func (x *ListRepositoryAdoptionScanSnapshotsRequest) GetPage() *PageRequest {
	if x != nil {
		return x.Page
	}
	return nil
}

func (x *ListRepositoryAdoptionScanSnapshotsRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ListRepositoryAdoptionScanSnapshotsResponse returns safe scan snapshots in stable server-defined order.
type ListRepositoryAdoptionScanSnapshotsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// adoption_scan_snapshots are returned newest first.
	AdoptionScanSnapshots []*RepositoryAdoptionScanSnapshot `protobuf:"bytes,1,rep,name=adoption_scan_snapshots,json=adoptionScanSnapshots,proto3" json:"adoption_scan_snapshots,omitempty"`
	// page describes continuation state.
	Page          *PageResponse `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListRepositoryAdoptionScanSnapshotsResponse) Reset() {
	*x = ListRepositoryAdoptionScanSnapshotsResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[75]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListRepositoryAdoptionScanSnapshotsResponse) ProtoMessage() {}

func (x *ListRepositoryAdoptionScanSnapshotsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[75]
	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 ListRepositoryAdoptionScanSnapshotsResponse.ProtoReflect.Descriptor instead.
func (*ListRepositoryAdoptionScanSnapshotsResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{75}
}

func (x *ListRepositoryAdoptionScanSnapshotsResponse) GetAdoptionScanSnapshots() []*RepositoryAdoptionScanSnapshot {
	if x != nil {
		return x.AdoptionScanSnapshots
	}
	return nil
}

func (x *ListRepositoryAdoptionScanSnapshotsResponse) GetPage() *PageResponse {
	if x != nil {
		return x.Page
	}
	return nil
}

// UpdatePullRequestRequest updates provider-native PR/MR fields.
type UpdatePullRequestRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// target identifies the provider-native PR/MR.
	Target *ProviderTarget `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
	// title is optional replacement title.
	Title *string `protobuf:"bytes,2,opt,name=title,proto3,oneof" json:"title,omitempty"`
	// body is optional replacement body.
	Body *string `protobuf:"bytes,3,opt,name=body,proto3,oneof" json:"body,omitempty"`
	// labels replaces provider labels when the message is present; empty values clear labels.
	Labels *StringListPatch `protobuf:"bytes,4,opt,name=labels,proto3" json:"labels,omitempty"`
	// assignee_provider_logins replaces provider assignees when the message is present;
	// empty values clear assignees.
	AssigneeProviderLogins *StringListPatch `protobuf:"bytes,5,opt,name=assignee_provider_logins,json=assigneeProviderLogins,proto3" json:"assignee_provider_logins,omitempty"`
	// milestone is optional provider milestone title or id.
	Milestone *string `protobuf:"bytes,6,opt,name=milestone,proto3,oneof" json:"milestone,omitempty"`
	// state is optional provider-normalized lifecycle state.
	State *string `protobuf:"bytes,7,opt,name=state,proto3,oneof" json:"state,omitempty"`
	// base_branch is optional replacement target branch when supported.
	BaseBranch *string `protobuf:"bytes,8,opt,name=base_branch,json=baseBranch,proto3,oneof" json:"base_branch,omitempty"`
	// maintainer_can_modify controls provider maintainer edit flag when supported.
	MaintainerCanModify *bool `protobuf:"varint,9,opt,name=maintainer_can_modify,json=maintainerCanModify,proto3,oneof" json:"maintainer_can_modify,omitempty"`
	// watermark_json is optional platform watermark payload.
	WatermarkJson *string `protobuf:"bytes,10,opt,name=watermark_json,json=watermarkJson,proto3,oneof" json:"watermark_json,omitempty"`
	// expected_provider_version is optional provider version or update marker.
	ExpectedProviderVersion *string `protobuf:"bytes,11,opt,name=expected_provider_version,json=expectedProviderVersion,proto3,oneof" json:"expected_provider_version,omitempty"`
	// meta carries idempotency, expected projection version and audit context.
	Meta *CommandMeta `protobuf:"bytes,12,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account selected by caller policy for the provider write.
	ExternalAccountId string `protobuf:"bytes,13,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *UpdatePullRequestRequest) Reset() {
	*x = UpdatePullRequestRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[76]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*UpdatePullRequestRequest) ProtoMessage() {}

func (x *UpdatePullRequestRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[76]
	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 UpdatePullRequestRequest.ProtoReflect.Descriptor instead.
func (*UpdatePullRequestRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{76}
}

func (x *UpdatePullRequestRequest) GetTarget() *ProviderTarget {
	if x != nil {
		return x.Target
	}
	return nil
}

func (x *UpdatePullRequestRequest) GetTitle() string {
	if x != nil && x.Title != nil {
		return *x.Title
	}
	return ""
}

func (x *UpdatePullRequestRequest) GetBody() string {
	if x != nil && x.Body != nil {
		return *x.Body
	}
	return ""
}

func (x *UpdatePullRequestRequest) GetLabels() *StringListPatch {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *UpdatePullRequestRequest) GetAssigneeProviderLogins() *StringListPatch {
	if x != nil {
		return x.AssigneeProviderLogins
	}
	return nil
}

func (x *UpdatePullRequestRequest) GetMilestone() string {
	if x != nil && x.Milestone != nil {
		return *x.Milestone
	}
	return ""
}

func (x *UpdatePullRequestRequest) GetState() string {
	if x != nil && x.State != nil {
		return *x.State
	}
	return ""
}

func (x *UpdatePullRequestRequest) GetBaseBranch() string {
	if x != nil && x.BaseBranch != nil {
		return *x.BaseBranch
	}
	return ""
}

func (x *UpdatePullRequestRequest) GetMaintainerCanModify() bool {
	if x != nil && x.MaintainerCanModify != nil {
		return *x.MaintainerCanModify
	}
	return false
}

func (x *UpdatePullRequestRequest) GetWatermarkJson() string {
	if x != nil && x.WatermarkJson != nil {
		return *x.WatermarkJson
	}
	return ""
}

func (x *UpdatePullRequestRequest) GetExpectedProviderVersion() string {
	if x != nil && x.ExpectedProviderVersion != nil {
		return *x.ExpectedProviderVersion
	}
	return ""
}

func (x *UpdatePullRequestRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *UpdatePullRequestRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

// CreateReviewSignalRequest creates a provider-native review signal.
type CreateReviewSignalRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// target identifies the provider-native PR/MR.
	Target *ProviderTarget `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
	// kind classifies review action.
	Kind ReviewSignalKind `protobuf:"varint,2,opt,name=kind,proto3,enum=kodex.providers.v1.ReviewSignalKind" json:"kind,omitempty"`
	// body is review body.
	Body string `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
	// inline_comments are typed inline review comments.
	InlineComments []*ReviewInlineComment `protobuf:"bytes,4,rep,name=inline_comments,json=inlineComments,proto3" json:"inline_comments,omitempty"`
	// meta carries idempotency and audit context.
	Meta *CommandMeta `protobuf:"bytes,5,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account selected by caller policy for the provider write.
	ExternalAccountId string `protobuf:"bytes,6,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *CreateReviewSignalRequest) Reset() {
	*x = CreateReviewSignalRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[77]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CreateReviewSignalRequest) ProtoMessage() {}

func (x *CreateReviewSignalRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[77]
	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 CreateReviewSignalRequest.ProtoReflect.Descriptor instead.
func (*CreateReviewSignalRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{77}
}

func (x *CreateReviewSignalRequest) GetTarget() *ProviderTarget {
	if x != nil {
		return x.Target
	}
	return nil
}

func (x *CreateReviewSignalRequest) GetKind() ReviewSignalKind {
	if x != nil {
		return x.Kind
	}
	return ReviewSignalKind_REVIEW_SIGNAL_KIND_UNSPECIFIED
}

func (x *CreateReviewSignalRequest) GetBody() string {
	if x != nil {
		return x.Body
	}
	return ""
}

func (x *CreateReviewSignalRequest) GetInlineComments() []*ReviewInlineComment {
	if x != nil {
		return x.InlineComments
	}
	return nil
}

func (x *CreateReviewSignalRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *CreateReviewSignalRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

// UpdateRelationshipRequest stores or updates a provider relationship.
type UpdateRelationshipRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// source identifies source work item.
	Source *ProviderTarget `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"`
	// target identifies target work item when known.
	Target *ProviderTarget `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
	// target_provider_ref is URL or provider ref when target object is not resolved.
	TargetProviderRef *string `protobuf:"bytes,3,opt,name=target_provider_ref,json=targetProviderRef,proto3,oneof" json:"target_provider_ref,omitempty"`
	// relationship_type is an extensible normalized relationship type.
	RelationshipType string `protobuf:"bytes,4,opt,name=relationship_type,json=relationshipType,proto3" json:"relationship_type,omitempty"`
	// source_kind classifies relationship source.
	SourceKind RelationshipSource `protobuf:"varint,5,opt,name=source_kind,json=sourceKind,proto3,enum=kodex.providers.v1.RelationshipSource" json:"source_kind,omitempty"`
	// confidence describes how reliable the relationship is.
	Confidence RelationshipConfidence `protobuf:"varint,6,opt,name=confidence,proto3,enum=kodex.providers.v1.RelationshipConfidence" json:"confidence,omitempty"`
	// meta carries idempotency and audit context.
	Meta *CommandMeta `protobuf:"bytes,7,opt,name=meta,proto3" json:"meta,omitempty"`
	// external_account_id is the account selected by caller policy for the provider write.
	ExternalAccountId string `protobuf:"bytes,8,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *UpdateRelationshipRequest) Reset() {
	*x = UpdateRelationshipRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[78]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*UpdateRelationshipRequest) ProtoMessage() {}

func (x *UpdateRelationshipRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[78]
	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 UpdateRelationshipRequest.ProtoReflect.Descriptor instead.
func (*UpdateRelationshipRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{78}
}

func (x *UpdateRelationshipRequest) GetSource() *ProviderTarget {
	if x != nil {
		return x.Source
	}
	return nil
}

func (x *UpdateRelationshipRequest) GetTarget() *ProviderTarget {
	if x != nil {
		return x.Target
	}
	return nil
}

func (x *UpdateRelationshipRequest) GetTargetProviderRef() string {
	if x != nil && x.TargetProviderRef != nil {
		return *x.TargetProviderRef
	}
	return ""
}

func (x *UpdateRelationshipRequest) GetRelationshipType() string {
	if x != nil {
		return x.RelationshipType
	}
	return ""
}

func (x *UpdateRelationshipRequest) GetSourceKind() RelationshipSource {
	if x != nil {
		return x.SourceKind
	}
	return RelationshipSource_RELATIONSHIP_SOURCE_UNSPECIFIED
}

func (x *UpdateRelationshipRequest) GetConfidence() RelationshipConfidence {
	if x != nil {
		return x.Confidence
	}
	return RelationshipConfidence_RELATIONSHIP_CONFIDENCE_UNSPECIFIED
}

func (x *UpdateRelationshipRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *UpdateRelationshipRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

// ProviderOperationCommandResult returns a safe command result summary.
type ProviderOperationCommandResult struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// target identifies the provider object touched by the command.
	Target *ProviderTarget `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
	// result_ref is a provider URL or id safe for UI and audit.
	ResultRef *string `protobuf:"bytes,2,opt,name=result_ref,json=resultRef,proto3,oneof" json:"result_ref,omitempty"`
	// provider_object_id is the provider-native object id when known.
	ProviderObjectId *string `protobuf:"bytes,3,opt,name=provider_object_id,json=providerObjectId,proto3,oneof" json:"provider_object_id,omitempty"`
	// provider_version is the resulting provider version or update marker when known.
	ProviderVersion *string `protobuf:"bytes,4,opt,name=provider_version,json=providerVersion,proto3,oneof" json:"provider_version,omitempty"`
	// reconciliation_enqueued tells caller whether follow-up reconciliation was scheduled.
	ReconciliationEnqueued bool `protobuf:"varint,5,opt,name=reconciliation_enqueued,json=reconciliationEnqueued,proto3" json:"reconciliation_enqueued,omitempty"`
	// emitted_event_types are domain event names emitted by provider-hub.
	EmittedEventTypes []string `protobuf:"bytes,6,rep,name=emitted_event_types,json=emittedEventTypes,proto3" json:"emitted_event_types,omitempty"`
	// base_branch is the provider default branch prepared by repository creation when known.
	BaseBranch    *string `protobuf:"bytes,7,opt,name=base_branch,json=baseBranch,proto3,oneof" json:"base_branch,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ProviderOperationCommandResult) Reset() {
	*x = ProviderOperationCommandResult{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[79]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProviderOperationCommandResult) ProtoMessage() {}

func (x *ProviderOperationCommandResult) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[79]
	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 ProviderOperationCommandResult.ProtoReflect.Descriptor instead.
func (*ProviderOperationCommandResult) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{79}
}

func (x *ProviderOperationCommandResult) GetTarget() *ProviderTarget {
	if x != nil {
		return x.Target
	}
	return nil
}

func (x *ProviderOperationCommandResult) GetResultRef() string {
	if x != nil && x.ResultRef != nil {
		return *x.ResultRef
	}
	return ""
}

func (x *ProviderOperationCommandResult) GetProviderObjectId() string {
	if x != nil && x.ProviderObjectId != nil {
		return *x.ProviderObjectId
	}
	return ""
}

func (x *ProviderOperationCommandResult) GetProviderVersion() string {
	if x != nil && x.ProviderVersion != nil {
		return *x.ProviderVersion
	}
	return ""
}

func (x *ProviderOperationCommandResult) GetReconciliationEnqueued() bool {
	if x != nil {
		return x.ReconciliationEnqueued
	}
	return false
}

func (x *ProviderOperationCommandResult) GetEmittedEventTypes() []string {
	if x != nil {
		return x.EmittedEventTypes
	}
	return nil
}

func (x *ProviderOperationCommandResult) GetBaseBranch() string {
	if x != nil && x.BaseBranch != nil {
		return *x.BaseBranch
	}
	return ""
}

// ProviderOperationResponse returns operation log entry and optional resulting projection.
type ProviderOperationResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_operation is the operation log entry.
	ProviderOperation *ProviderOperation `protobuf:"bytes,1,opt,name=provider_operation,json=providerOperation,proto3" json:"provider_operation,omitempty"`
	// work_item_projection is returned when operation produced or updated a work item.
	WorkItemProjection *WorkItemProjection `protobuf:"bytes,2,opt,name=work_item_projection,json=workItemProjection,proto3" json:"work_item_projection,omitempty"`
	// comment_projection is returned when operation produced or updated a comment.
	CommentProjection *CommentProjection `protobuf:"bytes,3,opt,name=comment_projection,json=commentProjection,proto3" json:"comment_projection,omitempty"`
	// relationship is returned when operation produced or updated a relationship.
	Relationship *ProviderRelationship `protobuf:"bytes,4,opt,name=relationship,proto3" json:"relationship,omitempty"`
	// result is a safe command result summary.
	Result *ProviderOperationCommandResult `protobuf:"bytes,5,opt,name=result,proto3" json:"result,omitempty"`
	// adoption_scan_snapshot is returned when operation produced a lightweight adoption scan.
	AdoptionScanSnapshot *RepositoryAdoptionScanSnapshot `protobuf:"bytes,6,opt,name=adoption_scan_snapshot,json=adoptionScanSnapshot,proto3" json:"adoption_scan_snapshot,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *ProviderOperationResponse) Reset() {
	*x = ProviderOperationResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[80]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProviderOperationResponse) ProtoMessage() {}

func (x *ProviderOperationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[80]
	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 ProviderOperationResponse.ProtoReflect.Descriptor instead.
func (*ProviderOperationResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{80}
}

func (x *ProviderOperationResponse) GetProviderOperation() *ProviderOperation {
	if x != nil {
		return x.ProviderOperation
	}
	return nil
}

func (x *ProviderOperationResponse) GetWorkItemProjection() *WorkItemProjection {
	if x != nil {
		return x.WorkItemProjection
	}
	return nil
}

func (x *ProviderOperationResponse) GetCommentProjection() *CommentProjection {
	if x != nil {
		return x.CommentProjection
	}
	return nil
}

func (x *ProviderOperationResponse) GetRelationship() *ProviderRelationship {
	if x != nil {
		return x.Relationship
	}
	return nil
}

func (x *ProviderOperationResponse) GetResult() *ProviderOperationCommandResult {
	if x != nil {
		return x.Result
	}
	return nil
}

func (x *ProviderOperationResponse) GetAdoptionScanSnapshot() *RepositoryAdoptionScanSnapshot {
	if x != nil {
		return x.AdoptionScanSnapshot
	}
	return nil
}

// GetProviderAccountRuntimeStateRequest reads runtime state.
type GetProviderAccountRuntimeStateRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_account_runtime_state_id is the runtime state id.
	ProviderAccountRuntimeStateId *string `protobuf:"bytes,1,opt,name=provider_account_runtime_state_id,json=providerAccountRuntimeStateId,proto3,oneof" json:"provider_account_runtime_state_id,omitempty"`
	// external_account_id links access-manager external account.
	ExternalAccountId *string `protobuf:"bytes,2,opt,name=external_account_id,json=externalAccountId,proto3,oneof" json:"external_account_id,omitempty"`
	// provider_slug optionally narrows external account lookup.
	ProviderSlug *string `protobuf:"bytes,3,opt,name=provider_slug,json=providerSlug,proto3,oneof" json:"provider_slug,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,4,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetProviderAccountRuntimeStateRequest) Reset() {
	*x = GetProviderAccountRuntimeStateRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[81]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetProviderAccountRuntimeStateRequest) ProtoMessage() {}

func (x *GetProviderAccountRuntimeStateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[81]
	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 GetProviderAccountRuntimeStateRequest.ProtoReflect.Descriptor instead.
func (*GetProviderAccountRuntimeStateRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{81}
}

func (x *GetProviderAccountRuntimeStateRequest) GetProviderAccountRuntimeStateId() string {
	if x != nil && x.ProviderAccountRuntimeStateId != nil {
		return *x.ProviderAccountRuntimeStateId
	}
	return ""
}

func (x *GetProviderAccountRuntimeStateRequest) GetExternalAccountId() string {
	if x != nil && x.ExternalAccountId != nil {
		return *x.ExternalAccountId
	}
	return ""
}

func (x *GetProviderAccountRuntimeStateRequest) GetProviderSlug() string {
	if x != nil && x.ProviderSlug != nil {
		return *x.ProviderSlug
	}
	return ""
}

func (x *GetProviderAccountRuntimeStateRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ProviderAccountRuntimeStateResponse returns runtime state.
type ProviderAccountRuntimeStateResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// runtime_state is the returned provider account runtime state.
	RuntimeState  *ProviderAccountRuntimeState `protobuf:"bytes,1,opt,name=runtime_state,json=runtimeState,proto3" json:"runtime_state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ProviderAccountRuntimeStateResponse) Reset() {
	*x = ProviderAccountRuntimeStateResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[82]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProviderAccountRuntimeStateResponse) ProtoMessage() {}

func (x *ProviderAccountRuntimeStateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[82]
	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 ProviderAccountRuntimeStateResponse.ProtoReflect.Descriptor instead.
func (*ProviderAccountRuntimeStateResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{82}
}

func (x *ProviderAccountRuntimeStateResponse) GetRuntimeState() *ProviderAccountRuntimeState {
	if x != nil {
		return x.RuntimeState
	}
	return nil
}

// ListProviderAccountRuntimeStatesRequest lists runtime states.
type ListProviderAccountRuntimeStatesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_slug optionally filters provider.
	ProviderSlug *string `protobuf:"bytes,1,opt,name=provider_slug,json=providerSlug,proto3,oneof" json:"provider_slug,omitempty"`
	// external_account_ids optionally filter access-manager external accounts.
	ExternalAccountIds []string `protobuf:"bytes,2,rep,name=external_account_ids,json=externalAccountIds,proto3" json:"external_account_ids,omitempty"`
	// statuses optionally filter provider runtime states.
	Statuses []ProviderAccountRuntimeStatus `protobuf:"varint,3,rep,packed,name=statuses,proto3,enum=kodex.providers.v1.ProviderAccountRuntimeStatus" json:"statuses,omitempty"`
	// project_id optionally filters by project scope when mapping is known.
	ProjectId *string `protobuf:"bytes,4,opt,name=project_id,json=projectId,proto3,oneof" json:"project_id,omitempty"`
	// organization_id optionally filters by organization scope when mapping is known.
	OrganizationId *string `protobuf:"bytes,5,opt,name=organization_id,json=organizationId,proto3,oneof" json:"organization_id,omitempty"`
	// page limits response size.
	Page *PageRequest `protobuf:"bytes,6,opt,name=page,proto3" json:"page,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,7,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListProviderAccountRuntimeStatesRequest) Reset() {
	*x = ListProviderAccountRuntimeStatesRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[83]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListProviderAccountRuntimeStatesRequest) ProtoMessage() {}

func (x *ListProviderAccountRuntimeStatesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[83]
	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 ListProviderAccountRuntimeStatesRequest.ProtoReflect.Descriptor instead.
func (*ListProviderAccountRuntimeStatesRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{83}
}

func (x *ListProviderAccountRuntimeStatesRequest) GetProviderSlug() string {
	if x != nil && x.ProviderSlug != nil {
		return *x.ProviderSlug
	}
	return ""
}

func (x *ListProviderAccountRuntimeStatesRequest) GetExternalAccountIds() []string {
	if x != nil {
		return x.ExternalAccountIds
	}
	return nil
}

func (x *ListProviderAccountRuntimeStatesRequest) GetStatuses() []ProviderAccountRuntimeStatus {
	if x != nil {
		return x.Statuses
	}
	return nil
}

func (x *ListProviderAccountRuntimeStatesRequest) GetProjectId() string {
	if x != nil && x.ProjectId != nil {
		return *x.ProjectId
	}
	return ""
}

func (x *ListProviderAccountRuntimeStatesRequest) GetOrganizationId() string {
	if x != nil && x.OrganizationId != nil {
		return *x.OrganizationId
	}
	return ""
}

func (x *ListProviderAccountRuntimeStatesRequest) GetPage() *PageRequest {
	if x != nil {
		return x.Page
	}
	return nil
}

func (x *ListProviderAccountRuntimeStatesRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ListProviderAccountRuntimeStatesResponse returns runtime states.
type ListProviderAccountRuntimeStatesResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// runtime_states are returned in stable server-defined order.
	RuntimeStates []*ProviderAccountRuntimeState `protobuf:"bytes,1,rep,name=runtime_states,json=runtimeStates,proto3" json:"runtime_states,omitempty"`
	// page describes continuation state.
	Page          *PageResponse `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListProviderAccountRuntimeStatesResponse) Reset() {
	*x = ListProviderAccountRuntimeStatesResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[84]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListProviderAccountRuntimeStatesResponse) ProtoMessage() {}

func (x *ListProviderAccountRuntimeStatesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[84]
	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 ListProviderAccountRuntimeStatesResponse.ProtoReflect.Descriptor instead.
func (*ListProviderAccountRuntimeStatesResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{84}
}

func (x *ListProviderAccountRuntimeStatesResponse) GetRuntimeStates() []*ProviderAccountRuntimeState {
	if x != nil {
		return x.RuntimeStates
	}
	return nil
}

func (x *ListProviderAccountRuntimeStatesResponse) GetPage() *PageResponse {
	if x != nil {
		return x.Page
	}
	return nil
}

// RecordProviderLimitSnapshotRequest records a provider limit snapshot.
type RecordProviderLimitSnapshotRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// external_account_id links access-manager external account.
	ExternalAccountId string `protobuf:"bytes,1,opt,name=external_account_id,json=externalAccountId,proto3" json:"external_account_id,omitempty"`
	// provider_slug is an extensible provider identifier.
	ProviderSlug string `protobuf:"bytes,2,opt,name=provider_slug,json=providerSlug,proto3" json:"provider_slug,omitempty"`
	// limit_class is provider limit class such as core, graphql or search.
	LimitClass string `protobuf:"bytes,3,opt,name=limit_class,json=limitClass,proto3" json:"limit_class,omitempty"`
	// remaining is remaining budget when known.
	Remaining *int64 `protobuf:"varint,4,opt,name=remaining,proto3,oneof" json:"remaining,omitempty"`
	// limit_value is total budget when known.
	LimitValue *int64 `protobuf:"varint,5,opt,name=limit_value,json=limitValue,proto3,oneof" json:"limit_value,omitempty"`
	// reset_at is reset time in RFC3339 format when known.
	ResetAt *string `protobuf:"bytes,6,opt,name=reset_at,json=resetAt,proto3,oneof" json:"reset_at,omitempty"`
	// captured_at is snapshot time in RFC3339 format.
	CapturedAt string `protobuf:"bytes,7,opt,name=captured_at,json=capturedAt,proto3" json:"captured_at,omitempty"`
	// source identifies who recorded the snapshot.
	Source string `protobuf:"bytes,8,opt,name=source,proto3" json:"source,omitempty"`
	// meta carries idempotency and audit context.
	Meta          *CommandMeta `protobuf:"bytes,9,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RecordProviderLimitSnapshotRequest) Reset() {
	*x = RecordProviderLimitSnapshotRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[85]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RecordProviderLimitSnapshotRequest) ProtoMessage() {}

func (x *RecordProviderLimitSnapshotRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[85]
	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 RecordProviderLimitSnapshotRequest.ProtoReflect.Descriptor instead.
func (*RecordProviderLimitSnapshotRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{85}
}

func (x *RecordProviderLimitSnapshotRequest) GetExternalAccountId() string {
	if x != nil {
		return x.ExternalAccountId
	}
	return ""
}

func (x *RecordProviderLimitSnapshotRequest) GetProviderSlug() string {
	if x != nil {
		return x.ProviderSlug
	}
	return ""
}

func (x *RecordProviderLimitSnapshotRequest) GetLimitClass() string {
	if x != nil {
		return x.LimitClass
	}
	return ""
}

func (x *RecordProviderLimitSnapshotRequest) GetRemaining() int64 {
	if x != nil && x.Remaining != nil {
		return *x.Remaining
	}
	return 0
}

func (x *RecordProviderLimitSnapshotRequest) GetLimitValue() int64 {
	if x != nil && x.LimitValue != nil {
		return *x.LimitValue
	}
	return 0
}

func (x *RecordProviderLimitSnapshotRequest) GetResetAt() string {
	if x != nil && x.ResetAt != nil {
		return *x.ResetAt
	}
	return ""
}

func (x *RecordProviderLimitSnapshotRequest) GetCapturedAt() string {
	if x != nil {
		return x.CapturedAt
	}
	return ""
}

func (x *RecordProviderLimitSnapshotRequest) GetSource() string {
	if x != nil {
		return x.Source
	}
	return ""
}

func (x *RecordProviderLimitSnapshotRequest) GetMeta() *CommandMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ProviderLimitSnapshotResponse returns provider limit snapshot.
type ProviderLimitSnapshotResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// limit_snapshot is the returned provider limit snapshot.
	LimitSnapshot *ProviderLimitSnapshot `protobuf:"bytes,1,opt,name=limit_snapshot,json=limitSnapshot,proto3" json:"limit_snapshot,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ProviderLimitSnapshotResponse) Reset() {
	*x = ProviderLimitSnapshotResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[86]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProviderLimitSnapshotResponse) ProtoMessage() {}

func (x *ProviderLimitSnapshotResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[86]
	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 ProviderLimitSnapshotResponse.ProtoReflect.Descriptor instead.
func (*ProviderLimitSnapshotResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{86}
}

func (x *ProviderLimitSnapshotResponse) GetLimitSnapshot() *ProviderLimitSnapshot {
	if x != nil {
		return x.LimitSnapshot
	}
	return nil
}

// ListProviderLimitSnapshotsRequest lists provider limit snapshots.
type ListProviderLimitSnapshotsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// external_account_id optionally filters access-manager external account.
	ExternalAccountId *string `protobuf:"bytes,1,opt,name=external_account_id,json=externalAccountId,proto3,oneof" json:"external_account_id,omitempty"`
	// provider_slug optionally filters provider.
	ProviderSlug *string `protobuf:"bytes,2,opt,name=provider_slug,json=providerSlug,proto3,oneof" json:"provider_slug,omitempty"`
	// limit_classes optionally filter provider limit classes.
	LimitClasses []string `protobuf:"bytes,3,rep,name=limit_classes,json=limitClasses,proto3" json:"limit_classes,omitempty"`
	// captured_since optionally filters lower capture time in RFC3339 format.
	CapturedSince *string `protobuf:"bytes,4,opt,name=captured_since,json=capturedSince,proto3,oneof" json:"captured_since,omitempty"`
	// page limits response size.
	Page *PageRequest `protobuf:"bytes,5,opt,name=page,proto3" json:"page,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,6,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListProviderLimitSnapshotsRequest) Reset() {
	*x = ListProviderLimitSnapshotsRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[87]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListProviderLimitSnapshotsRequest) ProtoMessage() {}

func (x *ListProviderLimitSnapshotsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[87]
	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 ListProviderLimitSnapshotsRequest.ProtoReflect.Descriptor instead.
func (*ListProviderLimitSnapshotsRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{87}
}

func (x *ListProviderLimitSnapshotsRequest) GetExternalAccountId() string {
	if x != nil && x.ExternalAccountId != nil {
		return *x.ExternalAccountId
	}
	return ""
}

func (x *ListProviderLimitSnapshotsRequest) GetProviderSlug() string {
	if x != nil && x.ProviderSlug != nil {
		return *x.ProviderSlug
	}
	return ""
}

func (x *ListProviderLimitSnapshotsRequest) GetLimitClasses() []string {
	if x != nil {
		return x.LimitClasses
	}
	return nil
}

func (x *ListProviderLimitSnapshotsRequest) GetCapturedSince() string {
	if x != nil && x.CapturedSince != nil {
		return *x.CapturedSince
	}
	return ""
}

func (x *ListProviderLimitSnapshotsRequest) GetPage() *PageRequest {
	if x != nil {
		return x.Page
	}
	return nil
}

func (x *ListProviderLimitSnapshotsRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ListProviderLimitSnapshotsResponse returns provider limit snapshots.
type ListProviderLimitSnapshotsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// limit_snapshots are returned in stable server-defined order.
	LimitSnapshots []*ProviderLimitSnapshot `protobuf:"bytes,1,rep,name=limit_snapshots,json=limitSnapshots,proto3" json:"limit_snapshots,omitempty"`
	// page describes continuation state.
	Page          *PageResponse `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListProviderLimitSnapshotsResponse) Reset() {
	*x = ListProviderLimitSnapshotsResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[88]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListProviderLimitSnapshotsResponse) ProtoMessage() {}

func (x *ListProviderLimitSnapshotsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[88]
	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 ListProviderLimitSnapshotsResponse.ProtoReflect.Descriptor instead.
func (*ListProviderLimitSnapshotsResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{88}
}

func (x *ListProviderLimitSnapshotsResponse) GetLimitSnapshots() []*ProviderLimitSnapshot {
	if x != nil {
		return x.LimitSnapshots
	}
	return nil
}

func (x *ListProviderLimitSnapshotsResponse) GetPage() *PageResponse {
	if x != nil {
		return x.Page
	}
	return nil
}

// ListProviderOperationsRequest lists provider operations.
type ListProviderOperationsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_slug optionally filters provider.
	ProviderSlug *string `protobuf:"bytes,1,opt,name=provider_slug,json=providerSlug,proto3,oneof" json:"provider_slug,omitempty"`
	// external_account_id optionally filters access-manager external account.
	ExternalAccountId *string `protobuf:"bytes,2,opt,name=external_account_id,json=externalAccountId,proto3,oneof" json:"external_account_id,omitempty"`
	// operation_types optionally filter operation types.
	OperationTypes []ProviderOperationType `protobuf:"varint,3,rep,packed,name=operation_types,json=operationTypes,proto3,enum=kodex.providers.v1.ProviderOperationType" json:"operation_types,omitempty"`
	// statuses optionally filter operation status.
	Statuses []ProviderOperationStatus `protobuf:"varint,4,rep,packed,name=statuses,proto3,enum=kodex.providers.v1.ProviderOperationStatus" json:"statuses,omitempty"`
	// target_ref optionally filters provider target.
	TargetRef *string `protobuf:"bytes,5,opt,name=target_ref,json=targetRef,proto3,oneof" json:"target_ref,omitempty"`
	// started_since optionally filters lower start time in RFC3339 format.
	StartedSince *string `protobuf:"bytes,6,opt,name=started_since,json=startedSince,proto3,oneof" json:"started_since,omitempty"`
	// page limits response size.
	Page *PageRequest `protobuf:"bytes,7,opt,name=page,proto3" json:"page,omitempty"`
	// meta carries read actor and request context.
	Meta          *QueryMeta `protobuf:"bytes,8,opt,name=meta,proto3" json:"meta,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListProviderOperationsRequest) Reset() {
	*x = ListProviderOperationsRequest{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[89]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListProviderOperationsRequest) ProtoMessage() {}

func (x *ListProviderOperationsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[89]
	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 ListProviderOperationsRequest.ProtoReflect.Descriptor instead.
func (*ListProviderOperationsRequest) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{89}
}

func (x *ListProviderOperationsRequest) GetProviderSlug() string {
	if x != nil && x.ProviderSlug != nil {
		return *x.ProviderSlug
	}
	return ""
}

func (x *ListProviderOperationsRequest) GetExternalAccountId() string {
	if x != nil && x.ExternalAccountId != nil {
		return *x.ExternalAccountId
	}
	return ""
}

func (x *ListProviderOperationsRequest) GetOperationTypes() []ProviderOperationType {
	if x != nil {
		return x.OperationTypes
	}
	return nil
}

func (x *ListProviderOperationsRequest) GetStatuses() []ProviderOperationStatus {
	if x != nil {
		return x.Statuses
	}
	return nil
}

func (x *ListProviderOperationsRequest) GetTargetRef() string {
	if x != nil && x.TargetRef != nil {
		return *x.TargetRef
	}
	return ""
}

func (x *ListProviderOperationsRequest) GetStartedSince() string {
	if x != nil && x.StartedSince != nil {
		return *x.StartedSince
	}
	return ""
}

func (x *ListProviderOperationsRequest) GetPage() *PageRequest {
	if x != nil {
		return x.Page
	}
	return nil
}

func (x *ListProviderOperationsRequest) GetMeta() *QueryMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// ListProviderOperationsResponse returns provider operations.
type ListProviderOperationsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_operations are returned in stable server-defined order.
	ProviderOperations []*ProviderOperation `protobuf:"bytes,1,rep,name=provider_operations,json=providerOperations,proto3" json:"provider_operations,omitempty"`
	// page describes continuation state.
	Page          *PageResponse `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListProviderOperationsResponse) Reset() {
	*x = ListProviderOperationsResponse{}
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[90]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListProviderOperationsResponse) ProtoMessage() {}

func (x *ListProviderOperationsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kodex_providers_v1_provider_hub_proto_msgTypes[90]
	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 ListProviderOperationsResponse.ProtoReflect.Descriptor instead.
func (*ListProviderOperationsResponse) Descriptor() ([]byte, []int) {
	return file_kodex_providers_v1_provider_hub_proto_rawDescGZIP(), []int{90}
}

func (x *ListProviderOperationsResponse) GetProviderOperations() []*ProviderOperation {
	if x != nil {
		return x.ProviderOperations
	}
	return nil
}

func (x *ListProviderOperationsResponse) GetPage() *PageResponse {
	if x != nil {
		return x.Page
	}
	return nil
}

var File_kodex_providers_v1_provider_hub_proto protoreflect.FileDescriptor

const file_kodex_providers_v1_provider_hub_proto_rawDesc = "" +
	"\n" +
	"%kodex/providers/v1/provider_hub.proto\x12\x12kodex.providers.v1\"\xc1\x04\n" +
	"\vCommandMeta\x12\"\n" +
	"\n" +
	"command_id\x18\x01 \x01(\tH\x00R\tcommandId\x88\x01\x01\x12,\n" +
	"\x0fidempotency_key\x18\x02 \x01(\tH\x01R\x0eidempotencyKey\x88\x01\x01\x12.\n" +
	"\x10expected_version\x18\x03 \x01(\x03H\x02R\x0fexpectedVersion\x88\x01\x01\x12/\n" +
	"\x05actor\x18\x04 \x01(\v2\x19.kodex.providers.v1.ActorR\x05actor\x12\x16\n" +
	"\x06reason\x18\x05 \x01(\tR\x06reason\x12\x1d\n" +
	"\n" +
	"request_id\x18\x06 \x01(\tR\trequestId\x12K\n" +
	"\x0frequest_context\x18\a \x01(\v2\".kodex.providers.v1.RequestContextR\x0erequestContext\x12l\n" +
	"\x18operation_policy_context\x18\b \x01(\v22.kodex.providers.v1.ProviderOperationPolicyContextR\x16operationPolicyContext\x12U\n" +
	"\x11approval_gate_ref\x18\t \x01(\v2).kodex.providers.v1.ApprovalGateReferenceR\x0fapprovalGateRefB\r\n" +
	"\v_command_idB\x12\n" +
	"\x10_idempotency_keyB\x13\n" +
	"\x11_expected_version\"\xa8\x01\n" +
	"\tQueryMeta\x12/\n" +
	"\x05actor\x18\x01 \x01(\v2\x19.kodex.providers.v1.ActorR\x05actor\x12\x1d\n" +
	"\n" +
	"request_id\x18\x02 \x01(\tR\trequestId\x12K\n" +
	"\x0frequest_context\x18\x03 \x01(\v2\".kodex.providers.v1.RequestContextR\x0erequestContext\"\xc6\x01\n" +
	"\x0eRequestContext\x12\x16\n" +
	"\x06source\x18\x01 \x01(\tR\x06source\x12\x1e\n" +
	"\btrace_id\x18\x02 \x01(\tH\x00R\atraceId\x88\x01\x01\x12\"\n" +
	"\n" +
	"session_id\x18\x03 \x01(\tH\x01R\tsessionId\x88\x01\x01\x12)\n" +
	"\x0eclient_ip_hash\x18\x04 \x01(\tH\x02R\fclientIpHash\x88\x01\x01B\v\n" +
	"\t_trace_idB\r\n" +
	"\v_session_idB\x11\n" +
	"\x0f_client_ip_hash\"\xdc\x05\n" +
	"\x1eProviderOperationPolicyContext\x12\"\n" +
	"\n" +
	"project_id\x18\x01 \x01(\tH\x00R\tprojectId\x88\x01\x01\x12(\n" +
	"\rrepository_id\x18\x02 \x01(\tH\x01R\frepositoryId\x88\x01\x01\x12\x19\n" +
	"\x05stage\x18\x03 \x01(\tH\x02R\x05stage\x88\x01\x01\x12\x1c\n" +
	"\arole_id\x18\x04 \x01(\tH\x03R\x06roleId\x88\x01\x01\x12\x1e\n" +
	"\brole_key\x18\x05 \x01(\tH\x04R\aroleKey\x88\x01\x01\x12P\n" +
	"\x0eoperation_type\x18\x06 \x01(\x0e2).kodex.providers.v1.ProviderOperationTypeR\roperationType\x12\"\n" +
	"\n" +
	"target_ref\x18\a \x01(\tH\x05R\ttargetRef\x88\x01\x01\x12%\n" +
	"\x0echanged_fields\x18\b \x03(\tR\rchangedFields\x12\x1b\n" +
	"\trisk_tags\x18\t \x03(\tR\briskTags\x12M\n" +
	"\n" +
	"risk_level\x18\n" +
	" \x01(\x0e2..kodex.providers.v1.ProviderOperationRiskLevelR\triskLevel\x12+\n" +
	"\x11approval_required\x18\v \x01(\bR\x10approvalRequired\x12*\n" +
	"\x0epolicy_version\x18\f \x01(\tH\x06R\rpolicyVersion\x88\x01\x01\x123\n" +
	"\x13policy_snapshot_ref\x18\r \x01(\tH\aR\x11policySnapshotRef\x88\x01\x01B\r\n" +
	"\v_project_idB\x10\n" +
	"\x0e_repository_idB\b\n" +
	"\x06_stageB\n" +
	"\n" +
	"\b_role_idB\v\n" +
	"\t_role_keyB\r\n" +
	"\v_target_refB\x11\n" +
	"\x0f_policy_versionB\x16\n" +
	"\x14_policy_snapshot_ref\"\xe8\x02\n" +
	"\x15ApprovalGateReference\x12\x1f\n" +
	"\vapproval_id\x18\x01 \x01(\tR\n" +
	"approvalId\x12\x1b\n" +
	"\tgate_type\x18\x02 \x01(\tR\bgateType\x12\x1a\n" +
	"\bdecision\x18\x03 \x01(\tR\bdecision\x122\n" +
	"\x13decided_by_actor_id\x18\x04 \x01(\tH\x00R\x10decidedByActorId\x88\x01\x01\x12\"\n" +
	"\n" +
	"decided_at\x18\x05 \x01(\tH\x01R\tdecidedAt\x88\x01\x01\x12&\n" +
	"\fevidence_ref\x18\x06 \x01(\tH\x02R\vevidenceRef\x88\x01\x01\x12*\n" +
	"\x0epolicy_version\x18\a \x01(\tH\x03R\rpolicyVersion\x88\x01\x01B\x16\n" +
	"\x14_decided_by_actor_idB\r\n" +
	"\v_decided_atB\x0f\n" +
	"\r_evidence_refB\x11\n" +
	"\x0f_policy_version\"+\n" +
	"\x05Actor\x12\x12\n" +
	"\x04type\x18\x01 \x01(\tR\x04type\x12\x0e\n" +
	"\x02id\x18\x02 \x01(\tR\x02id\"]\n" +
	"\vPageRequest\x12\x1b\n" +
	"\tpage_size\x18\x01 \x01(\x05R\bpageSize\x12\"\n" +
	"\n" +
	"page_token\x18\x02 \x01(\tH\x00R\tpageToken\x88\x01\x01B\r\n" +
	"\v_page_token\"O\n" +
	"\fPageResponse\x12+\n" +
	"\x0fnext_page_token\x18\x01 \x01(\tH\x00R\rnextPageToken\x88\x01\x01B\x12\n" +
	"\x10_next_page_token\")\n" +
	"\x0fStringListPatch\x12\x16\n" +
	"\x06values\x18\x01 \x03(\tR\x06values\"\xd5\x02\n" +
	"\x13ReviewInlineComment\x12\x12\n" +
	"\x04path\x18\x01 \x01(\tR\x04path\x12\x12\n" +
	"\x04body\x18\x02 \x01(\tR\x04body\x12\x17\n" +
	"\x04line\x18\x03 \x01(\x03H\x00R\x04line\x88\x01\x01\x12\"\n" +
	"\n" +
	"start_line\x18\x04 \x01(\x03H\x01R\tstartLine\x88\x01\x01\x12\x17\n" +
	"\x04side\x18\x05 \x01(\tH\x02R\x04side\x88\x01\x01\x12\"\n" +
	"\n" +
	"start_side\x18\x06 \x01(\tH\x03R\tstartSide\x88\x01\x01\x12H\n" +
	"\x1fin_reply_to_provider_comment_id\x18\a \x01(\tH\x04R\x1ainReplyToProviderCommentId\x88\x01\x01B\a\n" +
	"\x05_lineB\r\n" +
	"\v_start_lineB\a\n" +
	"\x05_sideB\r\n" +
	"\v_start_sideB\"\n" +
	" _in_reply_to_provider_comment_id\"\xd7\x03\n" +
	"\x0eProviderTarget\x12#\n" +
	"\rprovider_slug\x18\x01 \x01(\tR\fproviderSlug\x125\n" +
	"\x14repository_full_name\x18\x02 \x01(\tH\x00R\x12repositoryFullName\x88\x01\x01\x129\n" +
	"\x16provider_repository_id\x18\x03 \x01(\tH\x01R\x14providerRepositoryId\x88\x01\x01\x12K\n" +
	"\x0ework_item_kind\x18\x04 \x01(\x0e2 .kodex.providers.v1.WorkItemKindH\x02R\fworkItemKind\x88\x01\x01\x12\x1b\n" +
	"\x06number\x18\x05 \x01(\x03H\x03R\x06number\x88\x01\x01\x121\n" +
	"\x12provider_object_id\x18\x06 \x01(\tH\x04R\x10providerObjectId\x88\x01\x01\x12\x1c\n" +
	"\aweb_url\x18\a \x01(\tH\x05R\x06webUrl\x88\x01\x01B\x17\n" +
	"\x15_repository_full_nameB\x19\n" +
	"\x17_provider_repository_idB\x11\n" +
	"\x0f_work_item_kindB\t\n" +
	"\a_numberB\x15\n" +
	"\x13_provider_object_idB\n" +
	"\n" +
	"\b_web_url\"\x8e\x04\n" +
	"\fWebhookEvent\x12(\n" +
	"\x10webhook_event_id\x18\x01 \x01(\tR\x0ewebhookEventId\x12#\n" +
	"\rprovider_slug\x18\x02 \x01(\tR\fproviderSlug\x12\x1f\n" +
	"\vdelivery_id\x18\x03 \x01(\tR\n" +
	"deliveryId\x12\x1d\n" +
	"\n" +
	"event_name\x18\x04 \x01(\tR\teventName\x129\n" +
	"\x16repository_provider_id\x18\x05 \x01(\tH\x00R\x14repositoryProviderId\x88\x01\x01\x12\x1f\n" +
	"\vreceived_at\x18\x06 \x01(\tR\n" +
	"receivedAt\x12X\n" +
	"\x11processing_status\x18\a \x01(\x0e2+.kodex.providers.v1.WebhookProcessingStatusR\x10processingStatus\x12!\n" +
	"\fpayload_json\x18\b \x01(\tR\vpayloadJson\x12\"\n" +
	"\n" +
	"last_error\x18\t \x01(\tH\x01R\tlastError\x88\x01\x01\x12!\n" +
	"\fretain_until\x18\n" +
	" \x01(\tR\vretainUntil\x12%\n" +
	"\x0epayload_sha256\x18\v \x01(\tR\rpayloadSha256B\x19\n" +
	"\x17_repository_provider_idB\r\n" +
	"\v_last_error\"\xc0\x02\n" +
	"\rProviderEvent\x12*\n" +
	"\x11provider_event_id\x18\x01 \x01(\tR\x0fproviderEventId\x12:\n" +
	"\x17source_webhook_event_id\x18\x02 \x01(\tH\x00R\x14sourceWebhookEventId\x88\x01\x01\x12\x1d\n" +
	"\n" +
	"event_type\x18\x03 \x01(\tR\teventType\x12%\n" +
	"\x0eaggregate_type\x18\x04 \x01(\tR\raggregateType\x12!\n" +
	"\faggregate_id\x18\x05 \x01(\tR\vaggregateId\x12!\n" +
	"\fpayload_json\x18\x06 \x01(\tR\vpayloadJson\x12\x1f\n" +
	"\voccurred_at\x18\a \x01(\tR\n" +
	"occurredAtB\x1a\n" +
	"\x18_source_webhook_event_id\"\xb8\b\n" +
	"\x12WorkItemProjection\x125\n" +
	"\x17work_item_projection_id\x18\x01 \x01(\tR\x14workItemProjectionId\x12#\n" +
	"\rprovider_slug\x18\x02 \x01(\tR\fproviderSlug\x121\n" +
	"\x15provider_work_item_id\x18\x03 \x01(\tR\x12providerWorkItemId\x12\"\n" +
	"\n" +
	"project_id\x18\x04 \x01(\tH\x00R\tprojectId\x88\x01\x01\x12(\n" +
	"\rrepository_id\x18\x05 \x01(\tH\x01R\frepositoryId\x88\x01\x01\x120\n" +
	"\x14repository_full_name\x18\x06 \x01(\tR\x12repositoryFullName\x124\n" +
	"\x04kind\x18\a \x01(\x0e2 .kodex.providers.v1.WorkItemKindR\x04kind\x12\x16\n" +
	"\x06number\x18\b \x01(\x03R\x06number\x12\x17\n" +
	"\aweb_url\x18\t \x01(\tR\x06webUrl\x12\x14\n" +
	"\x05title\x18\n" +
	" \x01(\tR\x05title\x12\x14\n" +
	"\x05state\x18\v \x01(\tR\x05state\x12)\n" +
	"\x0ework_item_type\x18\f \x01(\tH\x02R\fworkItemType\x88\x01\x01\x12\x16\n" +
	"\x06labels\x18\r \x03(\tR\x06labels\x128\n" +
	"\x18assignee_provider_logins\x18\x0e \x03(\tR\x16assigneeProviderLogins\x12!\n" +
	"\tmilestone\x18\x0f \x01(\tH\x03R\tmilestone\x88\x01\x01\x12.\n" +
	"\x13project_fields_json\x18\x10 \x01(\tR\x11projectFieldsJson\x12V\n" +
	"\x10watermark_status\x18\x11 \x01(\x0e2+.kodex.providers.v1.WorkItemWatermarkStatusR\x0fwatermarkStatus\x12%\n" +
	"\x0ewatermark_json\x18\x12 \x01(\tR\rwatermarkJson\x12\x1f\n" +
	"\vbody_digest\x18\x13 \x01(\tR\n" +
	"bodyDigest\x123\n" +
	"\x13provider_updated_at\x18\x14 \x01(\tH\x04R\x11providerUpdatedAt\x88\x01\x01\x12\x1b\n" +
	"\tsynced_at\x18\x15 \x01(\tR\bsyncedAt\x12J\n" +
	"\fdrift_status\x18\x16 \x01(\x0e2'.kodex.providers.v1.WorkItemDriftStatusR\vdriftStatus\x12\x18\n" +
	"\aversion\x18\x17 \x01(\x03R\aversionB\r\n" +
	"\v_project_idB\x10\n" +
	"\x0e_repository_idB\x11\n" +
	"\x0f_work_item_typeB\f\n" +
	"\n" +
	"_milestoneB\x16\n" +
	"\x14_provider_updated_at\"\xb0\x04\n" +
	"\x11CommentProjection\x122\n" +
	"\x15comment_projection_id\x18\x01 \x01(\tR\x13commentProjectionId\x125\n" +
	"\x17work_item_projection_id\x18\x02 \x01(\tR\x14workItemProjectionId\x12.\n" +
	"\x13provider_comment_id\x18\x03 \x01(\tR\x11providerCommentId\x123\n" +
	"\x04kind\x18\x04 \x01(\x0e2\x1f.kodex.providers.v1.CommentKindR\x04kind\x122\n" +
	"\x15author_provider_login\x18\x05 \x01(\tR\x13authorProviderLogin\x12\x1f\n" +
	"\vbody_digest\x18\x06 \x01(\tR\n" +
	"bodyDigest\x12\x18\n" +
	"\asummary\x18\a \x01(\tR\asummary\x123\n" +
	"\x13provider_created_at\x18\b \x01(\tH\x00R\x11providerCreatedAt\x88\x01\x01\x123\n" +
	"\x13provider_updated_at\x18\t \x01(\tH\x01R\x11providerUpdatedAt\x88\x01\x01\x12B\n" +
	"\freview_state\x18\n" +
	" \x01(\x0e2\x1f.kodex.providers.v1.ReviewStateR\vreviewStateB\x16\n" +
	"\x14_provider_created_atB\x16\n" +
	"\x14_provider_updated_at\"\xae\x04\n" +
	"\x14ProviderRelationship\x12'\n" +
	"\x0frelationship_id\x18\x01 \x01(\tR\x0erelationshipId\x12B\n" +
	"\x1esource_work_item_projection_id\x18\x02 \x01(\tR\x1asourceWorkItemProjectionId\x12G\n" +
	"\x1etarget_work_item_projection_id\x18\x03 \x01(\tH\x00R\x1atargetWorkItemProjectionId\x88\x01\x01\x123\n" +
	"\x13target_provider_ref\x18\x04 \x01(\tH\x01R\x11targetProviderRef\x88\x01\x01\x12+\n" +
	"\x11relationship_type\x18\x05 \x01(\tR\x10relationshipType\x12>\n" +
	"\x06source\x18\x06 \x01(\x0e2&.kodex.providers.v1.RelationshipSourceR\x06source\x12J\n" +
	"\n" +
	"confidence\x18\a \x01(\x0e2*.kodex.providers.v1.RelationshipConfidenceR\n" +
	"confidence\x12\x1d\n" +
	"\n" +
	"created_at\x18\b \x01(\tR\tcreatedAt\x12\x18\n" +
	"\aversion\x18\t \x01(\x03R\aversionB!\n" +
	"\x1f_target_work_item_projection_idB\x16\n" +
	"\x14_target_provider_ref\"\xc6\x06\n" +
	"\n" +
	"SyncCursor\x12$\n" +
	"\x0esync_cursor_id\x18\x01 \x01(\tR\fsyncCursorId\x12#\n" +
	"\rprovider_slug\x18\x02 \x01(\tR\fproviderSlug\x12.\n" +
	"\x13external_account_id\x18\x0f \x01(\tR\x11externalAccountId\x12F\n" +
	"\n" +
	"scope_type\x18\x03 \x01(\x0e2'.kodex.providers.v1.SyncCursorScopeTypeR\tscopeType\x12\x1b\n" +
	"\tscope_ref\x18\x04 \x01(\tR\bscopeRef\x12I\n" +
	"\rartifact_kind\x18\x05 \x01(\x0e2$.kodex.providers.v1.SyncArtifactKindR\fartifactKind\x12&\n" +
	"\fcursor_value\x18\x06 \x01(\tH\x00R\vcursorValue\x88\x01\x01\x12(\n" +
	"\roverlap_since\x18\a \x01(\tH\x01R\foverlapSince\x88\x01\x01\x12B\n" +
	"\bpriority\x18\b \x01(\x0e2&.kodex.providers.v1.SyncCursorPriorityR\bpriority\x12+\n" +
	"\x0flast_success_at\x18\t \x01(\tH\x02R\rlastSuccessAt\x88\x01\x01\x12+\n" +
	"\x0flast_checked_at\x18\n" +
	" \x01(\tH\x03R\rlastCheckedAt\x88\x01\x01\x12\"\n" +
	"\n" +
	"last_error\x18\v \x01(\tH\x04R\tlastError\x88\x01\x01\x123\n" +
	"\x16rate_budget_state_json\x18\f \x01(\tR\x13rateBudgetStateJson\x12$\n" +
	"\vlease_owner\x18\r \x01(\tH\x05R\n" +
	"leaseOwner\x88\x01\x01\x12$\n" +
	"\vlease_until\x18\x0e \x01(\tH\x06R\n" +
	"leaseUntil\x88\x01\x01B\x0f\n" +
	"\r_cursor_valueB\x10\n" +
	"\x0e_overlap_sinceB\x12\n" +
	"\x10_last_success_atB\x12\n" +
	"\x10_last_checked_atB\r\n" +
	"\v_last_errorB\x0e\n" +
	"\f_lease_ownerB\x0e\n" +
	"\f_lease_until\"\xad\x04\n" +
	"\x1bProviderAccountRuntimeState\x12H\n" +
	"!provider_account_runtime_state_id\x18\x01 \x01(\tR\x1dproviderAccountRuntimeStateId\x12.\n" +
	"\x13external_account_id\x18\x02 \x01(\tR\x11externalAccountId\x12#\n" +
	"\rprovider_slug\x18\x03 \x01(\tR\fproviderSlug\x12H\n" +
	"\x06status\x18\x04 \x01(\x0e20.kodex.providers.v1.ProviderAccountRuntimeStatusR\x06status\x12+\n" +
	"\x0flast_checked_at\x18\x05 \x01(\tH\x00R\rlastCheckedAt\x88\x01\x01\x12+\n" +
	"\x0flast_success_at\x18\x06 \x01(\tH\x01R\rlastSuccessAt\x88\x01\x01\x12+\n" +
	"\x0flast_error_code\x18\a \x01(\tH\x02R\rlastErrorCode\x88\x01\x01\x121\n" +
	"\x12last_error_message\x18\b \x01(\tH\x03R\x10lastErrorMessage\x88\x01\x01\x12\x18\n" +
	"\aversion\x18\t \x01(\x03R\aversionB\x12\n" +
	"\x10_last_checked_atB\x12\n" +
	"\x10_last_success_atB\x12\n" +
	"\x10_last_error_codeB\x15\n" +
	"\x13_last_error_message\"\x97\x03\n" +
	"\x15ProviderLimitSnapshot\x12;\n" +
	"\x1aprovider_limit_snapshot_id\x18\x01 \x01(\tR\x17providerLimitSnapshotId\x12.\n" +
	"\x13external_account_id\x18\x02 \x01(\tR\x11externalAccountId\x12#\n" +
	"\rprovider_slug\x18\x03 \x01(\tR\fproviderSlug\x12\x1f\n" +
	"\vlimit_class\x18\x04 \x01(\tR\n" +
	"limitClass\x12!\n" +
	"\tremaining\x18\x05 \x01(\x03H\x00R\tremaining\x88\x01\x01\x12$\n" +
	"\vlimit_value\x18\x06 \x01(\x03H\x01R\n" +
	"limitValue\x88\x01\x01\x12\x1e\n" +
	"\breset_at\x18\a \x01(\tH\x02R\aresetAt\x88\x01\x01\x12\x1f\n" +
	"\vcaptured_at\x18\b \x01(\tR\n" +
	"capturedAt\x12\x16\n" +
	"\x06source\x18\t \x01(\tR\x06sourceB\f\n" +
	"\n" +
	"_remainingB\x0e\n" +
	"\f_limit_valueB\v\n" +
	"\t_reset_at\"\xf4\a\n" +
	"\x11ProviderOperation\x122\n" +
	"\x15provider_operation_id\x18\x01 \x01(\tR\x13providerOperationId\x12\x1d\n" +
	"\n" +
	"command_id\x18\x02 \x01(\tR\tcommandId\x12\x1e\n" +
	"\bactor_id\x18\x03 \x01(\tH\x00R\aactorId\x88\x01\x01\x12.\n" +
	"\x13external_account_id\x18\x04 \x01(\tR\x11externalAccountId\x12#\n" +
	"\rprovider_slug\x18\x05 \x01(\tR\fproviderSlug\x12P\n" +
	"\x0eoperation_type\x18\x06 \x01(\x0e2).kodex.providers.v1.ProviderOperationTypeR\roperationType\x12\x1d\n" +
	"\n" +
	"target_ref\x18\a \x01(\tR\ttargetRef\x12C\n" +
	"\x06status\x18\b \x01(\x0e2+.kodex.providers.v1.ProviderOperationStatusR\x06status\x12\"\n" +
	"\n" +
	"result_ref\x18\t \x01(\tH\x01R\tresultRef\x88\x01\x01\x12\"\n" +
	"\n" +
	"error_code\x18\n" +
	" \x01(\tH\x02R\terrorCode\x88\x01\x01\x12(\n" +
	"\rerror_message\x18\v \x01(\tH\x03R\ferrorMessage\x88\x01\x01\x128\n" +
	"\x16rate_limit_snapshot_id\x18\f \x01(\tH\x04R\x13rateLimitSnapshotId\x88\x01\x01\x12\x1d\n" +
	"\n" +
	"started_at\x18\r \x01(\tR\tstartedAt\x12$\n" +
	"\vfinished_at\x18\x0e \x01(\tH\x05R\n" +
	"finishedAt\x88\x01\x01\x12l\n" +
	"\x18operation_policy_context\x18\x0f \x01(\v22.kodex.providers.v1.ProviderOperationPolicyContextR\x16operationPolicyContext\x12U\n" +
	"\x11approval_gate_ref\x18\x10 \x01(\v2).kodex.providers.v1.ApprovalGateReferenceR\x0fapprovalGateRef\x12.\n" +
	"\x10provider_version\x18\x11 \x01(\tH\x06R\x0fproviderVersion\x88\x01\x01B\v\n" +
	"\t_actor_idB\r\n" +
	"\v_result_refB\r\n" +
	"\v_error_codeB\x10\n" +
	"\x0e_error_messageB\x19\n" +
	"\x17_rate_limit_snapshot_idB\x0e\n" +
	"\f_finished_atB\x13\n" +
	"\x11_provider_version\"\xcf\x02\n" +
	"\x19IngestWebhookEventRequest\x12#\n" +
	"\rprovider_slug\x18\x01 \x01(\tR\fproviderSlug\x12\x1f\n" +
	"\vdelivery_id\x18\x02 \x01(\tR\n" +
	"deliveryId\x12\x1d\n" +
	"\n" +
	"event_name\x18\x03 \x01(\tR\teventName\x129\n" +
	"\x16repository_provider_id\x18\x04 \x01(\tH\x00R\x14repositoryProviderId\x88\x01\x01\x12!\n" +
	"\fpayload_json\x18\x05 \x01(\tR\vpayloadJson\x12\x1f\n" +
	"\vreceived_at\x18\x06 \x01(\tR\n" +
	"receivedAt\x123\n" +
	"\x04meta\x18\a \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04metaB\x19\n" +
	"\x17_repository_provider_id\"]\n" +
	"\x14WebhookEventResponse\x12E\n" +
	"\rwebhook_event\x18\x01 \x01(\v2 .kodex.providers.v1.WebhookEventR\fwebhookEvent\"u\n" +
	"\x16GetWebhookEventRequest\x12(\n" +
	"\x10webhook_event_id\x18\x01 \x01(\tR\x0ewebhookEventId\x121\n" +
	"\x04meta\x18\x02 \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04meta\"\xc7\x04\n" +
	"\x18ListWebhookEventsRequest\x12(\n" +
	"\rprovider_slug\x18\x01 \x01(\tH\x00R\fproviderSlug\x88\x01\x01\x12$\n" +
	"\vdelivery_id\x18\x02 \x01(\tH\x01R\n" +
	"deliveryId\x88\x01\x01\x12\x1f\n" +
	"\vevent_names\x18\x03 \x03(\tR\n" +
	"eventNames\x12\\\n" +
	"\x13processing_statuses\x18\x04 \x03(\x0e2+.kodex.providers.v1.WebhookProcessingStatusR\x12processingStatuses\x129\n" +
	"\x16repository_provider_id\x18\x05 \x01(\tH\x02R\x14repositoryProviderId\x88\x01\x01\x12*\n" +
	"\x0ereceived_since\x18\x06 \x01(\tH\x03R\rreceivedSince\x88\x01\x01\x12*\n" +
	"\x0ereceived_until\x18\a \x01(\tH\x04R\rreceivedUntil\x88\x01\x01\x123\n" +
	"\x04page\x18\b \x01(\v2\x1f.kodex.providers.v1.PageRequestR\x04page\x121\n" +
	"\x04meta\x18\t \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB\x10\n" +
	"\x0e_provider_slugB\x0e\n" +
	"\f_delivery_idB\x19\n" +
	"\x17_repository_provider_idB\x11\n" +
	"\x0f_received_sinceB\x11\n" +
	"\x0f_received_until\"\x9a\x01\n" +
	"\x19ListWebhookEventsResponse\x12G\n" +
	"\x0ewebhook_events\x18\x01 \x03(\v2 .kodex.providers.v1.WebhookEventR\rwebhookEvents\x124\n" +
	"\x04page\x18\x02 \x01(\v2 .kodex.providers.v1.PageResponseR\x04page\"\x83\x01\n" +
	"\"RetryWebhookEventProcessingRequest\x12(\n" +
	"\x10webhook_event_id\x18\x01 \x01(\tR\x0ewebhookEventId\x123\n" +
	"\x04meta\x18\x02 \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\"\x9f\x01\n" +
	"$CleanupExpiredWebhookPayloadsRequest\x12\x19\n" +
	"\x05limit\x18\x01 \x01(\x05H\x00R\x05limit\x88\x01\x01\x12\x15\n" +
	"\x03now\x18\x02 \x01(\tH\x01R\x03now\x88\x01\x01\x123\n" +
	"\x04meta\x18\x03 \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04metaB\b\n" +
	"\x06_limitB\x06\n" +
	"\x04_now\"\xb4\x01\n" +
	"%CleanupExpiredWebhookPayloadsResponse\x12#\n" +
	"\rcleaned_count\x18\x01 \x01(\x05R\fcleanedCount\x12\x1d\n" +
	"\n" +
	"cleaned_at\x18\x02 \x01(\tR\tcleanedAt\x12G\n" +
	"\x0ewebhook_events\x18\x03 \x03(\v2 .kodex.providers.v1.WebhookEventR\rwebhookEvents\"\x88\x01\n" +
	"\x1cGetWorkItemProjectionRequest\x125\n" +
	"\x17work_item_projection_id\x18\x01 \x01(\tR\x14workItemProjectionId\x121\n" +
	"\x04meta\x18\x02 \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04meta\"\x91\x01\n" +
	" FindWorkItemByProviderRefRequest\x12:\n" +
	"\x06target\x18\x01 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x06target\x121\n" +
	"\x04meta\x18\x02 \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04meta\"v\n" +
	"\x1aWorkItemProjectionResponse\x12X\n" +
	"\x14work_item_projection\x18\x01 \x01(\v2&.kodex.providers.v1.WorkItemProjectionR\x12workItemProjection\"\x9f\x05\n" +
	"\x1eListWorkItemProjectionsRequest\x12\"\n" +
	"\n" +
	"project_id\x18\x01 \x01(\tH\x00R\tprojectId\x88\x01\x01\x12(\n" +
	"\rrepository_id\x18\x02 \x01(\tH\x01R\frepositoryId\x88\x01\x01\x12(\n" +
	"\rprovider_slug\x18\x03 \x01(\tH\x02R\fproviderSlug\x88\x01\x01\x125\n" +
	"\x14repository_full_name\x18\x04 \x01(\tH\x03R\x12repositoryFullName\x88\x01\x01\x126\n" +
	"\x05kinds\x18\x05 \x03(\x0e2 .kodex.providers.v1.WorkItemKindR\x05kinds\x12\x16\n" +
	"\x06states\x18\x06 \x03(\tR\x06states\x12\x16\n" +
	"\x06labels\x18\a \x03(\tR\x06labels\x12&\n" +
	"\x0fwork_item_types\x18\b \x03(\tR\rworkItemTypes\x12N\n" +
	"\x0edrift_statuses\x18\t \x03(\x0e2'.kodex.providers.v1.WorkItemDriftStatusR\rdriftStatuses\x12(\n" +
	"\rupdated_since\x18\n" +
	" \x01(\tH\x04R\fupdatedSince\x88\x01\x01\x123\n" +
	"\x04page\x18\v \x01(\v2\x1f.kodex.providers.v1.PageRequestR\x04page\x121\n" +
	"\x04meta\x18\f \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB\r\n" +
	"\v_project_idB\x10\n" +
	"\x0e_repository_idB\x10\n" +
	"\x0e_provider_slugB\x17\n" +
	"\x15_repository_full_nameB\x10\n" +
	"\x0e_updated_since\"\xb3\x01\n" +
	"\x1fListWorkItemProjectionsResponse\x12Z\n" +
	"\x15work_item_projections\x18\x01 \x03(\v2&.kodex.providers.v1.WorkItemProjectionR\x13workItemProjections\x124\n" +
	"\x04page\x18\x02 \x01(\v2 .kodex.providers.v1.PageResponseR\x04page\"\xeb\x01\n" +
	"\x13ListCommentsRequest\x125\n" +
	"\x17work_item_projection_id\x18\x01 \x01(\tR\x14workItemProjectionId\x125\n" +
	"\x05kinds\x18\x02 \x03(\x0e2\x1f.kodex.providers.v1.CommentKindR\x05kinds\x123\n" +
	"\x04page\x18\x03 \x01(\v2\x1f.kodex.providers.v1.PageRequestR\x04page\x121\n" +
	"\x04meta\x18\x04 \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04meta\"\x8f\x01\n" +
	"\x14ListCommentsResponse\x12A\n" +
	"\bcomments\x18\x01 \x03(\v2%.kodex.providers.v1.CommentProjectionR\bcomments\x124\n" +
	"\x04page\x18\x02 \x01(\v2 .kodex.providers.v1.PageResponseR\x04page\"\xa4\x03\n" +
	"\x18ListRelationshipsRequest\x12:\n" +
	"\x17work_item_projection_id\x18\x01 \x01(\tH\x00R\x14workItemProjectionId\x88\x01\x01\x12-\n" +
	"\x12relationship_types\x18\x02 \x03(\tR\x11relationshipTypes\x12@\n" +
	"\asources\x18\x03 \x03(\x0e2&.kodex.providers.v1.RelationshipSourceR\asources\x12W\n" +
	"\x11confidence_levels\x18\x04 \x03(\x0e2*.kodex.providers.v1.RelationshipConfidenceR\x10confidenceLevels\x123\n" +
	"\x04page\x18\x05 \x01(\v2\x1f.kodex.providers.v1.PageRequestR\x04page\x121\n" +
	"\x04meta\x18\x06 \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB\x1a\n" +
	"\x18_work_item_projection_id\"\xa1\x01\n" +
	"\x19ListRelationshipsResponse\x12N\n" +
	"\rrelationships\x18\x01 \x03(\v2(.kodex.providers.v1.ProviderRelationshipR\rrelationships\x124\n" +
	"\x04page\x18\x02 \x01(\v2 .kodex.providers.v1.PageResponseR\x04page\"\xea\x02\n" +
	"%RegisterProviderArtifactSignalRequest\x12 \n" +
	"\tsignal_id\x18\x01 \x01(\tH\x00R\bsignalId\x88\x01\x01\x12:\n" +
	"\x06target\x18\x02 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x06target\x12\x16\n" +
	"\x06source\x18\x03 \x01(\tR\x06source\x12\x1f\n" +
	"\vobserved_at\x18\x04 \x01(\tR\n" +
	"observedAt\x12&\n" +
	"\fpayload_json\x18\x05 \x01(\tH\x01R\vpayloadJson\x88\x01\x01\x123\n" +
	"\x04meta\x18\x06 \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\a \x01(\tR\x11externalAccountIdB\f\n" +
	"\n" +
	"_signal_idB\x0f\n" +
	"\r_payload_json\"\x91\x01\n" +
	"\x1eProviderArtifactSignalResponse\x12\x1b\n" +
	"\tsignal_id\x18\x01 \x01(\tR\bsignalId\x12\x16\n" +
	"\x06status\x18\x02 \x01(\tR\x06status\x12:\n" +
	"\x06target\x18\x03 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x06target\"\x9e\x03\n" +
	"\x1cEnqueueReconciliationRequest\x12#\n" +
	"\rprovider_slug\x18\x01 \x01(\tR\fproviderSlug\x12F\n" +
	"\n" +
	"scope_type\x18\x02 \x01(\x0e2'.kodex.providers.v1.SyncCursorScopeTypeR\tscopeType\x12\x1b\n" +
	"\tscope_ref\x18\x03 \x01(\tR\bscopeRef\x12K\n" +
	"\x0eartifact_kinds\x18\x04 \x03(\x0e2$.kodex.providers.v1.SyncArtifactKindR\rartifactKinds\x12B\n" +
	"\bpriority\x18\x05 \x01(\x0e2&.kodex.providers.v1.SyncCursorPriorityR\bpriority\x123\n" +
	"\x04meta\x18\x06 \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\a \x01(\tR\x11externalAccountId\"b\n" +
	"\x1dReconciliationRequestResponse\x12A\n" +
	"\fsync_cursors\x18\x01 \x03(\v2\x1e.kodex.providers.v1.SyncCursorR\vsyncCursors\"\xd9\x02\n" +
	"\x1dRunReconciliationBatchRequest\x12)\n" +
	"\x0esync_cursor_id\x18\x01 \x01(\tH\x00R\fsyncCursorId\x88\x01\x01\x12(\n" +
	"\rprovider_slug\x18\x02 \x01(\tH\x01R\fproviderSlug\x88\x01\x01\x12\x1b\n" +
	"\tmax_items\x18\x03 \x01(\x05R\bmaxItems\x12\x1f\n" +
	"\vlease_owner\x18\x04 \x01(\tR\n" +
	"leaseOwner\x123\n" +
	"\x04meta\x18\x05 \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x123\n" +
	"\x13external_account_id\x18\x06 \x01(\tH\x02R\x11externalAccountId\x88\x01\x01B\x11\n" +
	"\x0f_sync_cursor_idB\x10\n" +
	"\x0e_provider_slugB\x16\n" +
	"\x14_external_account_id\"\xeb\x01\n" +
	"\x1eRunReconciliationBatchResponse\x12?\n" +
	"\vsync_cursor\x18\x01 \x01(\v2\x1e.kodex.providers.v1.SyncCursorR\n" +
	"syncCursor\x12'\n" +
	"\x0fitems_processed\x18\x02 \x01(\x03R\x0eitemsProcessed\x12)\n" +
	"\x10events_published\x18\x03 \x01(\x03R\x0feventsPublished\x12$\n" +
	"\vretry_after\x18\x04 \x01(\tH\x00R\n" +
	"retryAfter\x88\x01\x01B\x0e\n" +
	"\f_retry_after\"o\n" +
	"\x14GetSyncCursorRequest\x12$\n" +
	"\x0esync_cursor_id\x18\x01 \x01(\tR\fsyncCursorId\x121\n" +
	"\x04meta\x18\x02 \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04meta\"U\n" +
	"\x12SyncCursorResponse\x12?\n" +
	"\vsync_cursor\x18\x01 \x01(\v2\x1e.kodex.providers.v1.SyncCursorR\n" +
	"syncCursor\"\xd3\x04\n" +
	"\x16ListSyncCursorsRequest\x12(\n" +
	"\rprovider_slug\x18\x01 \x01(\tH\x00R\fproviderSlug\x88\x01\x01\x12K\n" +
	"\n" +
	"scope_type\x18\x02 \x01(\x0e2'.kodex.providers.v1.SyncCursorScopeTypeH\x01R\tscopeType\x88\x01\x01\x12 \n" +
	"\tscope_ref\x18\x03 \x01(\tH\x02R\bscopeRef\x88\x01\x01\x12K\n" +
	"\x0eartifact_kinds\x18\x04 \x03(\x0e2$.kodex.providers.v1.SyncArtifactKindR\rartifactKinds\x12F\n" +
	"\n" +
	"priorities\x18\x05 \x03(\x0e2&.kodex.providers.v1.SyncCursorPriorityR\n" +
	"priorities\x12'\n" +
	"\x0finclude_healthy\x18\x06 \x01(\bR\x0eincludeHealthy\x123\n" +
	"\x04page\x18\a \x01(\v2\x1f.kodex.providers.v1.PageRequestR\x04page\x121\n" +
	"\x04meta\x18\b \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04meta\x123\n" +
	"\x13external_account_id\x18\t \x01(\tH\x03R\x11externalAccountId\x88\x01\x01B\x10\n" +
	"\x0e_provider_slugB\r\n" +
	"\v_scope_typeB\f\n" +
	"\n" +
	"_scope_refB\x16\n" +
	"\x14_external_account_id\"\x92\x01\n" +
	"\x17ListSyncCursorsResponse\x12A\n" +
	"\fsync_cursors\x18\x01 \x03(\v2\x1e.kodex.providers.v1.SyncCursorR\vsyncCursors\x124\n" +
	"\x04page\x18\x02 \x01(\v2 .kodex.providers.v1.PageResponseR\x04page\"\xdd\x04\n" +
	"\x12CreateIssueRequest\x12\x1d\n" +
	"\n" +
	"project_id\x18\x01 \x01(\tR\tprojectId\x12#\n" +
	"\rrepository_id\x18\x02 \x01(\tR\frepositoryId\x12#\n" +
	"\rprovider_slug\x18\x03 \x01(\tR\fproviderSlug\x12\x14\n" +
	"\x05title\x18\x04 \x01(\tR\x05title\x12\x12\n" +
	"\x04body\x18\x05 \x01(\tR\x04body\x12\x16\n" +
	"\x06labels\x18\x06 \x03(\tR\x06labels\x128\n" +
	"\x18assignee_provider_logins\x18\a \x03(\tR\x16assigneeProviderLogins\x12!\n" +
	"\tmilestone\x18\b \x01(\tH\x00R\tmilestone\x88\x01\x01\x12)\n" +
	"\x0ework_item_type\x18\t \x01(\tH\x01R\fworkItemType\x88\x01\x01\x12*\n" +
	"\x0ewatermark_json\x18\n" +
	" \x01(\tH\x02R\rwatermarkJson\x88\x01\x01\x123\n" +
	"\x04meta\x18\v \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\f \x01(\tR\x11externalAccountId\x12O\n" +
	"\x11repository_target\x18\r \x01(\v2\".kodex.providers.v1.ProviderTargetR\x10repositoryTargetB\f\n" +
	"\n" +
	"_milestoneB\x11\n" +
	"\x0f_work_item_typeB\x11\n" +
	"\x0f_watermark_json\"\xca\x05\n" +
	"\x12UpdateIssueRequest\x12:\n" +
	"\x06target\x18\x01 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x06target\x12\x19\n" +
	"\x05title\x18\x02 \x01(\tH\x00R\x05title\x88\x01\x01\x12\x17\n" +
	"\x04body\x18\x03 \x01(\tH\x01R\x04body\x88\x01\x01\x12;\n" +
	"\x06labels\x18\x04 \x01(\v2#.kodex.providers.v1.StringListPatchR\x06labels\x12]\n" +
	"\x18assignee_provider_logins\x18\x05 \x01(\v2#.kodex.providers.v1.StringListPatchR\x16assigneeProviderLogins\x12!\n" +
	"\tmilestone\x18\x06 \x01(\tH\x02R\tmilestone\x88\x01\x01\x12\x19\n" +
	"\x05state\x18\a \x01(\tH\x03R\x05state\x88\x01\x01\x12)\n" +
	"\x0ework_item_type\x18\b \x01(\tH\x04R\fworkItemType\x88\x01\x01\x12*\n" +
	"\x0ewatermark_json\x18\t \x01(\tH\x05R\rwatermarkJson\x88\x01\x01\x12?\n" +
	"\x19expected_provider_version\x18\n" +
	" \x01(\tH\x06R\x17expectedProviderVersion\x88\x01\x01\x123\n" +
	"\x04meta\x18\v \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\f \x01(\tR\x11externalAccountIdB\b\n" +
	"\x06_titleB\a\n" +
	"\x05_bodyB\f\n" +
	"\n" +
	"_milestoneB\b\n" +
	"\x06_stateB\x11\n" +
	"\x0f_work_item_typeB\x11\n" +
	"\x0f_watermark_jsonB\x1c\n" +
	"\x1a_expected_provider_version\"\xcb\x01\n" +
	"\x14CreateCommentRequest\x12:\n" +
	"\x06target\x18\x01 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x06target\x12\x12\n" +
	"\x04body\x18\x02 \x01(\tR\x04body\x123\n" +
	"\x04meta\x18\x03 \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\x04 \x01(\tR\x11externalAccountId\"\xda\x02\n" +
	"\x14UpdateCommentRequest\x12:\n" +
	"\x06target\x18\x01 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x06target\x12.\n" +
	"\x13provider_comment_id\x18\x02 \x01(\tR\x11providerCommentId\x12\x12\n" +
	"\x04body\x18\x03 \x01(\tR\x04body\x12?\n" +
	"\x19expected_provider_version\x18\x04 \x01(\tH\x00R\x17expectedProviderVersion\x88\x01\x01\x123\n" +
	"\x04meta\x18\x05 \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\x06 \x01(\tR\x11externalAccountIdB\x1c\n" +
	"\x1a_expected_provider_version\"\xd6\x04\n" +
	"\x18CreatePullRequestRequest\x12\x1d\n" +
	"\n" +
	"project_id\x18\x01 \x01(\tR\tprojectId\x12#\n" +
	"\rrepository_id\x18\x02 \x01(\tR\frepositoryId\x12#\n" +
	"\rprovider_slug\x18\x03 \x01(\tR\fproviderSlug\x12\x14\n" +
	"\x05title\x18\x04 \x01(\tR\x05title\x12\x12\n" +
	"\x04body\x18\x05 \x01(\tR\x04body\x12\x1f\n" +
	"\vhead_branch\x18\x06 \x01(\tR\n" +
	"headBranch\x12\x1f\n" +
	"\vbase_branch\x18\a \x01(\tR\n" +
	"baseBranch\x12\x14\n" +
	"\x05draft\x18\b \x01(\bR\x05draft\x12\x16\n" +
	"\x06labels\x18\t \x03(\tR\x06labels\x12-\n" +
	"\x10linked_issue_ref\x18\n" +
	" \x01(\tH\x00R\x0elinkedIssueRef\x88\x01\x01\x12*\n" +
	"\x0ewatermark_json\x18\v \x01(\tH\x01R\rwatermarkJson\x88\x01\x01\x123\n" +
	"\x04meta\x18\f \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\r \x01(\tR\x11externalAccountId\x12O\n" +
	"\x11repository_target\x18\x0e \x01(\v2\".kodex.providers.v1.ProviderTargetR\x10repositoryTargetB\x13\n" +
	"\x11_linked_issue_refB\x11\n" +
	"\x0f_watermark_json\"\x98\x04\n" +
	"\x17CreateRepositoryRequest\x12\x1d\n" +
	"\n" +
	"project_id\x18\x01 \x01(\tR\tprojectId\x12#\n" +
	"\rrepository_id\x18\x02 \x01(\tR\frepositoryId\x12#\n" +
	"\rprovider_slug\x18\x03 \x01(\tR\fproviderSlug\x12F\n" +
	"\n" +
	"owner_kind\x18\x04 \x01(\x0e2'.kodex.providers.v1.RepositoryOwnerKindR\townerKind\x12*\n" +
	"\x0eprovider_owner\x18\x05 \x01(\tH\x00R\rproviderOwner\x88\x01\x01\x12'\n" +
	"\x0frepository_name\x18\x06 \x01(\tR\x0erepositoryName\x12H\n" +
	"\n" +
	"visibility\x18\a \x01(\x0e2(.kodex.providers.v1.RepositoryVisibilityR\n" +
	"visibility\x12%\n" +
	"\vdescription\x18\b \x01(\tH\x01R\vdescription\x88\x01\x01\x123\n" +
	"\x04meta\x18\t \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\n" +
	" \x01(\tR\x11externalAccountIdB\x11\n" +
	"\x0f_provider_ownerB\x0e\n" +
	"\f_description\"]\n" +
	"\rBootstrapFile\x12\x12\n" +
	"\x04path\x18\x01 \x01(\tR\x04path\x12\x18\n" +
	"\acontent\x18\x02 \x01(\tR\acontent\x12\x1e\n" +
	"\n" +
	"executable\x18\x03 \x01(\bR\n" +
	"executable\"\\\n" +
	"\fAdoptionFile\x12\x12\n" +
	"\x04path\x18\x01 \x01(\tR\x04path\x12\x18\n" +
	"\acontent\x18\x02 \x01(\tR\acontent\x12\x1e\n" +
	"\n" +
	"executable\x18\x03 \x01(\bR\n" +
	"executable\"\xed\x04\n" +
	"!CreateBootstrapPullRequestRequest\x12\x1d\n" +
	"\n" +
	"project_id\x18\x01 \x01(\tR\tprojectId\x12#\n" +
	"\rrepository_id\x18\x02 \x01(\tR\frepositoryId\x12#\n" +
	"\rprovider_slug\x18\x03 \x01(\tR\fproviderSlug\x12O\n" +
	"\x11repository_target\x18\x04 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x10repositoryTarget\x12\x1f\n" +
	"\vbase_branch\x18\x05 \x01(\tR\n" +
	"baseBranch\x12)\n" +
	"\x10bootstrap_branch\x18\x06 \x01(\tR\x0fbootstrapBranch\x12%\n" +
	"\x0ecommit_message\x18\a \x01(\tR\rcommitMessage\x12\x14\n" +
	"\x05title\x18\b \x01(\tR\x05title\x12\x12\n" +
	"\x04body\x18\t \x01(\tR\x04body\x12\x14\n" +
	"\x05draft\x18\n" +
	" \x01(\bR\x05draft\x127\n" +
	"\x05files\x18\v \x03(\v2!.kodex.providers.v1.BootstrapFileR\x05files\x12*\n" +
	"\x0ewatermark_json\x18\f \x01(\tH\x00R\rwatermarkJson\x88\x01\x01\x123\n" +
	"\x04meta\x18\r \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\x0e \x01(\tR\x11externalAccountIdB\x11\n" +
	"\x0f_watermark_json\"\xe9\x04\n" +
	" CreateAdoptionPullRequestRequest\x12\x1d\n" +
	"\n" +
	"project_id\x18\x01 \x01(\tR\tprojectId\x12#\n" +
	"\rrepository_id\x18\x02 \x01(\tR\frepositoryId\x12#\n" +
	"\rprovider_slug\x18\x03 \x01(\tR\fproviderSlug\x12O\n" +
	"\x11repository_target\x18\x04 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x10repositoryTarget\x12\x1f\n" +
	"\vbase_branch\x18\x05 \x01(\tR\n" +
	"baseBranch\x12'\n" +
	"\x0fadoption_branch\x18\x06 \x01(\tR\x0eadoptionBranch\x12%\n" +
	"\x0ecommit_message\x18\a \x01(\tR\rcommitMessage\x12\x14\n" +
	"\x05title\x18\b \x01(\tR\x05title\x12\x12\n" +
	"\x04body\x18\t \x01(\tR\x04body\x12\x14\n" +
	"\x05draft\x18\n" +
	" \x01(\bR\x05draft\x126\n" +
	"\x05files\x18\v \x03(\v2 .kodex.providers.v1.AdoptionFileR\x05files\x12*\n" +
	"\x0ewatermark_json\x18\f \x01(\tH\x00R\rwatermarkJson\x88\x01\x01\x123\n" +
	"\x04meta\x18\r \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\x0e \x01(\tR\x11externalAccountIdB\x11\n" +
	"\x0f_watermark_json\"\x8d\x02\n" +
	"\x1dRepositoryAdoptionScanOptions\x12(\n" +
	"\rrequested_ref\x18\x01 \x01(\tH\x00R\frequestedRef\x88\x01\x01\x120\n" +
	"\x14allowed_ref_prefixes\x18\x02 \x03(\tR\x12allowedRefPrefixes\x12(\n" +
	"\x10max_tree_entries\x18\x03 \x01(\x05R\x0emaxTreeEntries\x12(\n" +
	"\x10max_marker_paths\x18\x04 \x01(\x05R\x0emaxMarkerPaths\x12*\n" +
	"\x11marker_path_hints\x18\x05 \x03(\tR\x0fmarkerPathHintsB\x10\n" +
	"\x0e_requested_ref\"\xca\x02\n" +
	" ScanRepositoryForAdoptionRequest\x12#\n" +
	"\rprovider_slug\x18\x01 \x01(\tR\fproviderSlug\x12O\n" +
	"\x11repository_target\x18\x02 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x10repositoryTarget\x12K\n" +
	"\aoptions\x18\x03 \x01(\v21.kodex.providers.v1.RepositoryAdoptionScanOptionsR\aoptions\x123\n" +
	"\x04meta\x18\x04 \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\x05 \x01(\tR\x11externalAccountId\"\xbc\x01\n" +
	"\x1cRepositoryAdoptionScanMarker\x12\x12\n" +
	"\x04path\x18\x01 \x01(\tR\x04path\x12D\n" +
	"\x04kind\x18\x02 \x01(\x0e20.kodex.providers.v1.RepositoryAdoptionMarkerKindR\x04kind\x12#\n" +
	"\robject_digest\x18\x03 \x01(\tR\fobjectDigest\x12\x1d\n" +
	"\n" +
	"size_bytes\x18\x04 \x01(\x03R\tsizeBytes\"\x8e\b\n" +
	"\x1eRepositoryAdoptionScanSnapshot\x12\x1f\n" +
	"\vsnapshot_id\x18\x01 \x01(\tR\n" +
	"snapshotId\x122\n" +
	"\x15provider_operation_id\x18\x02 \x01(\tR\x13providerOperationId\x12#\n" +
	"\rprovider_slug\x18\x03 \x01(\tR\fproviderSlug\x12.\n" +
	"\x13external_account_id\x18\x04 \x01(\tR\x11externalAccountId\x12O\n" +
	"\x11repository_target\x18\x05 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x10repositoryTarget\x120\n" +
	"\x14repository_full_name\x18\x06 \x01(\tR\x12repositoryFullName\x124\n" +
	"\x16provider_repository_id\x18\a \x01(\tR\x14providerRepositoryId\x12%\n" +
	"\x0erepository_url\x18\b \x01(\tR\rrepositoryUrl\x12%\n" +
	"\x0edefault_branch\x18\t \x01(\tR\rdefaultBranch\x12#\n" +
	"\rrequested_ref\x18\n" +
	" \x01(\tR\frequestedRef\x12\x1f\n" +
	"\vscanned_ref\x18\v \x01(\tR\n" +
	"scannedRef\x12\x19\n" +
	"\bhead_sha\x18\f \x01(\tR\aheadSha\x12H\n" +
	"\x06status\x18\r \x01(\x0e20.kodex.providers.v1.RepositoryAdoptionScanStatusR\x06status\x12J\n" +
	"\amarkers\x18\x0e \x03(\v20.kodex.providers.v1.RepositoryAdoptionScanMarkerR\amarkers\x12\x1d\n" +
	"\n" +
	"file_count\x18\x0f \x01(\x03R\tfileCount\x12,\n" +
	"\x12visible_file_count\x18\x10 \x01(\x03R\x10visibleFileCount\x12%\n" +
	"\x0etree_truncated\x18\x11 \x01(\bR\rtreeTruncated\x12\x1a\n" +
	"\bwarnings\x18\x12 \x03(\tR\bwarnings\x12'\n" +
	"\x0fsnapshot_digest\x18\x13 \x01(\tR\x0esnapshotDigest\x12\x1f\n" +
	"\vobserved_at\x18\x14 \x01(\tR\n" +
	"observedAt\x12\x18\n" +
	"\aversion\x18\x15 \x01(\x03R\aversion\x12\x12\n" +
	"\x04etag\x18\x16 \x01(\tR\x04etag\x12\x1d\n" +
	"\n" +
	"created_at\x18\x17 \x01(\tR\tcreatedAt\x12\x1d\n" +
	"\n" +
	"updated_at\x18\x18 \x01(\tR\tupdatedAt\"\xd2\b\n" +
	"\x15RepositoryMergeSignal\x12\x1b\n" +
	"\tsignal_id\x18\x01 \x01(\tR\bsignalId\x12\x1d\n" +
	"\n" +
	"signal_key\x18\x02 \x01(\tR\tsignalKey\x12A\n" +
	"\x04kind\x18\x03 \x01(\x0e2-.kodex.providers.v1.RepositoryMergeSignalKindR\x04kind\x12#\n" +
	"\rprovider_slug\x18\x04 \x01(\tR\fproviderSlug\x12\x1d\n" +
	"\n" +
	"project_id\x18\x05 \x01(\tR\tprojectId\x12#\n" +
	"\rrepository_id\x18\x06 \x01(\tR\frepositoryId\x120\n" +
	"\x14repository_full_name\x18\a \x01(\tR\x12repositoryFullName\x124\n" +
	"\x16provider_repository_id\x18\b \x01(\tR\x14providerRepositoryId\x125\n" +
	"\x17work_item_projection_id\x18\t \x01(\tR\x14workItemProjectionId\x121\n" +
	"\x15provider_work_item_id\x18\n" +
	" \x01(\tR\x12providerWorkItemId\x12.\n" +
	"\x13pull_request_number\x18\v \x01(\x03R\x11pullRequestNumber\x127\n" +
	"\x18pull_request_provider_id\x18\f \x01(\tR\x15pullRequestProviderId\x12(\n" +
	"\x10pull_request_url\x18\r \x01(\tR\x0epullRequestUrl\x12\x1f\n" +
	"\vbase_branch\x18\x0e \x01(\tR\n" +
	"baseBranch\x12\x1f\n" +
	"\vhead_branch\x18\x0f \x01(\tR\n" +
	"headBranch\x12(\n" +
	"\x10merge_commit_sha\x18\x10 \x01(\tR\x0emergeCommitSha\x12\x1d\n" +
	"\n" +
	"source_ref\x18\x11 \x01(\tR\tsourceRef\x12C\n" +
	"\x1erelated_provider_operation_ref\x18\x12 \x01(\tR\x1brelatedProviderOperationRef\x12)\n" +
	"\x10watermark_digest\x18\x13 \x01(\tR\x0fwatermarkDigest\x12\x1f\n" +
	"\vobserved_at\x18\x14 \x01(\tR\n" +
	"observedAt\x12\x1b\n" +
	"\tmerged_at\x18\x15 \x01(\tR\bmergedAt\x12G\n" +
	"\x06status\x18\x16 \x01(\x0e2/.kodex.providers.v1.RepositoryMergeSignalStatusR\x06status\x12\x18\n" +
	"\aversion\x18\x17 \x01(\x03R\aversion\x12\x12\n" +
	"\x04etag\x18\x18 \x01(\tR\x04etag\x12\x1d\n" +
	"\n" +
	"created_at\x18\x19 \x01(\tR\tcreatedAt\x12\x1d\n" +
	"\n" +
	"updated_at\x18\x1a \x01(\tR\tupdatedAt\"\xb7\x01\n" +
	"\x1fGetRepositoryMergeSignalRequest\x12 \n" +
	"\tsignal_id\x18\x01 \x01(\tH\x00R\bsignalId\x88\x01\x01\x12\"\n" +
	"\n" +
	"signal_key\x18\x02 \x01(\tH\x01R\tsignalKey\x88\x01\x01\x121\n" +
	"\x04meta\x18\x03 \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB\f\n" +
	"\n" +
	"_signal_idB\r\n" +
	"\v_signal_key\"\xbb\x01\n" +
	"\x1dRepositoryMergeSignalResponse\x12L\n" +
	"\vread_status\x18\x01 \x01(\x0e2+.kodex.providers.v1.ProviderOwnedDataStatusR\n" +
	"readStatus\x12L\n" +
	"\fmerge_signal\x18\x02 \x01(\v2).kodex.providers.v1.RepositoryMergeSignalR\vmergeSignal\"\xf4\x05\n" +
	"!ListRepositoryMergeSignalsRequest\x12\"\n" +
	"\n" +
	"project_id\x18\x01 \x01(\tH\x00R\tprojectId\x88\x01\x01\x12(\n" +
	"\rrepository_id\x18\x02 \x01(\tH\x01R\frepositoryId\x88\x01\x01\x12(\n" +
	"\rprovider_slug\x18\x03 \x01(\tH\x02R\fproviderSlug\x88\x01\x01\x125\n" +
	"\x14repository_full_name\x18\x04 \x01(\tH\x03R\x12repositoryFullName\x88\x01\x01\x129\n" +
	"\x16provider_repository_id\x18\x05 \x01(\tH\x04R\x14providerRepositoryId\x88\x01\x01\x12C\n" +
	"\x05kinds\x18\x06 \x03(\x0e2-.kodex.providers.v1.RepositoryMergeSignalKindR\x05kinds\x12K\n" +
	"\bstatuses\x18\a \x03(\x0e2/.kodex.providers.v1.RepositoryMergeSignalStatusR\bstatuses\x123\n" +
	"\x13pull_request_number\x18\b \x01(\x03H\x05R\x11pullRequestNumber\x88\x01\x01\x12&\n" +
	"\fmerged_since\x18\t \x01(\tH\x06R\vmergedSince\x88\x01\x01\x123\n" +
	"\x04page\x18\n" +
	" \x01(\v2\x1f.kodex.providers.v1.PageRequestR\x04page\x121\n" +
	"\x04meta\x18\v \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB\r\n" +
	"\v_project_idB\x10\n" +
	"\x0e_repository_idB\x10\n" +
	"\x0e_provider_slugB\x17\n" +
	"\x15_repository_full_nameB\x19\n" +
	"\x17_provider_repository_idB\x16\n" +
	"\x14_pull_request_numberB\x0f\n" +
	"\r_merged_since\"\xaa\x01\n" +
	"\"ListRepositoryMergeSignalsResponse\x12N\n" +
	"\rmerge_signals\x18\x01 \x03(\v2).kodex.providers.v1.RepositoryMergeSignalR\fmergeSignals\x124\n" +
	"\x04page\x18\x02 \x01(\v2 .kodex.providers.v1.PageResponseR\x04page\"\x87\x01\n" +
	"!RepositoryChangePathCategoryCount\x12L\n" +
	"\bcategory\x18\x01 \x01(\x0e20.kodex.providers.v1.RepositoryChangePathCategoryR\bcategory\x12\x14\n" +
	"\x05count\x18\x02 \x01(\x03R\x05count\"\x98\n" +
	"\n" +
	"\x16RepositoryChangeSignal\x12\x1b\n" +
	"\tsignal_id\x18\x01 \x01(\tR\bsignalId\x12\x1d\n" +
	"\n" +
	"signal_key\x18\x02 \x01(\tR\tsignalKey\x12B\n" +
	"\x04kind\x18\x03 \x01(\x0e2..kodex.providers.v1.RepositoryChangeSignalKindR\x04kind\x12#\n" +
	"\rprovider_slug\x18\x04 \x01(\tR\fproviderSlug\x12\x1d\n" +
	"\n" +
	"project_id\x18\x05 \x01(\tR\tprojectId\x12#\n" +
	"\rrepository_id\x18\x06 \x01(\tR\frepositoryId\x120\n" +
	"\x14repository_full_name\x18\a \x01(\tR\x12repositoryFullName\x124\n" +
	"\x16provider_repository_id\x18\b \x01(\tR\x14providerRepositoryId\x12\x10\n" +
	"\x03ref\x18\t \x01(\tR\x03ref\x12\x1f\n" +
	"\vbase_branch\x18\n" +
	" \x01(\tR\n" +
	"baseBranch\x12\x1d\n" +
	"\n" +
	"commit_sha\x18\v \x01(\tR\tcommitSha\x12\x1d\n" +
	"\n" +
	"before_sha\x18\f \x01(\tR\tbeforeSha\x12\x1d\n" +
	"\n" +
	"source_ref\x18\r \x01(\tR\tsourceRef\x12.\n" +
	"\x13pull_request_number\x18\x0e \x01(\x03R\x11pullRequestNumber\x127\n" +
	"\x18pull_request_provider_id\x18\x0f \x01(\tR\x15pullRequestProviderId\x12(\n" +
	"\x10pull_request_url\x18\x10 \x01(\tR\x0epullRequestUrl\x12e\n" +
	"\x13path_summary_status\x18\x11 \x01(\x0e25.kodex.providers.v1.RepositoryChangePathSummaryStatusR\x11pathSummaryStatus\x12,\n" +
	"\x12changed_path_count\x18\x12 \x01(\x03R\x10changedPathCount\x12\x1f\n" +
	"\vpath_digest\x18\x13 \x01(\tR\n" +
	"pathDigest\x12^\n" +
	"\x0fpath_categories\x18\x14 \x03(\v25.kodex.providers.v1.RepositoryChangePathCategoryCountR\x0epathCategories\x126\n" +
	"\x17services_policy_changed\x18\x15 \x01(\bR\x15servicesPolicyChanged\x126\n" +
	"\x17deploy_relevant_changed\x18\x16 \x01(\bR\x15deployRelevantChanged\x12-\n" +
	"\x12change_fingerprint\x18\x17 \x01(\tR\x11changeFingerprint\x12\x1f\n" +
	"\vobserved_at\x18\x18 \x01(\tR\n" +
	"observedAt\x12H\n" +
	"\x06status\x18\x19 \x01(\x0e20.kodex.providers.v1.RepositoryChangeSignalStatusR\x06status\x12\x18\n" +
	"\aversion\x18\x1a \x01(\x03R\aversion\x12\x12\n" +
	"\x04etag\x18\x1b \x01(\tR\x04etag\x12\x1d\n" +
	"\n" +
	"created_at\x18\x1c \x01(\tR\tcreatedAt\x12\x1d\n" +
	"\n" +
	"updated_at\x18\x1d \x01(\tR\tupdatedAt\"\xb8\x01\n" +
	" GetRepositoryChangeSignalRequest\x12 \n" +
	"\tsignal_id\x18\x01 \x01(\tH\x00R\bsignalId\x88\x01\x01\x12\"\n" +
	"\n" +
	"signal_key\x18\x02 \x01(\tH\x01R\tsignalKey\x88\x01\x01\x121\n" +
	"\x04meta\x18\x03 \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB\f\n" +
	"\n" +
	"_signal_idB\r\n" +
	"\v_signal_key\"\xbf\x01\n" +
	"\x1eRepositoryChangeSignalResponse\x12L\n" +
	"\vread_status\x18\x01 \x01(\x0e2+.kodex.providers.v1.ProviderOwnedDataStatusR\n" +
	"readStatus\x12O\n" +
	"\rchange_signal\x18\x02 \x01(\v2*.kodex.providers.v1.RepositoryChangeSignalR\fchangeSignal\"\xcb\a\n" +
	"\"ListRepositoryChangeSignalsRequest\x12\"\n" +
	"\n" +
	"project_id\x18\x01 \x01(\tH\x00R\tprojectId\x88\x01\x01\x12(\n" +
	"\rrepository_id\x18\x02 \x01(\tH\x01R\frepositoryId\x88\x01\x01\x12(\n" +
	"\rprovider_slug\x18\x03 \x01(\tH\x02R\fproviderSlug\x88\x01\x01\x125\n" +
	"\x14repository_full_name\x18\x04 \x01(\tH\x03R\x12repositoryFullName\x88\x01\x01\x129\n" +
	"\x16provider_repository_id\x18\x05 \x01(\tH\x04R\x14providerRepositoryId\x88\x01\x01\x12D\n" +
	"\x05kinds\x18\x06 \x03(\x0e2..kodex.providers.v1.RepositoryChangeSignalKindR\x05kinds\x12L\n" +
	"\bstatuses\x18\a \x03(\x0e20.kodex.providers.v1.RepositoryChangeSignalStatusR\bstatuses\x12$\n" +
	"\vbase_branch\x18\b \x01(\tH\x05R\n" +
	"baseBranch\x88\x01\x01\x12\"\n" +
	"\n" +
	"commit_sha\x18\t \x01(\tH\x06R\tcommitSha\x88\x01\x01\x12;\n" +
	"\x17services_policy_changed\x18\n" +
	" \x01(\bH\aR\x15servicesPolicyChanged\x88\x01\x01\x12;\n" +
	"\x17deploy_relevant_changed\x18\v \x01(\bH\bR\x15deployRelevantChanged\x88\x01\x01\x12*\n" +
	"\x0eobserved_since\x18\f \x01(\tH\tR\robservedSince\x88\x01\x01\x123\n" +
	"\x04page\x18\r \x01(\v2\x1f.kodex.providers.v1.PageRequestR\x04page\x121\n" +
	"\x04meta\x18\x0e \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB\r\n" +
	"\v_project_idB\x10\n" +
	"\x0e_repository_idB\x10\n" +
	"\x0e_provider_slugB\x17\n" +
	"\x15_repository_full_nameB\x19\n" +
	"\x17_provider_repository_idB\x0e\n" +
	"\f_base_branchB\r\n" +
	"\v_commit_shaB\x1a\n" +
	"\x18_services_policy_changedB\x1a\n" +
	"\x18_deploy_relevant_changedB\x11\n" +
	"\x0f_observed_since\"\xae\x01\n" +
	"#ListRepositoryChangeSignalsResponse\x12Q\n" +
	"\x0echange_signals\x18\x01 \x03(\v2*.kodex.providers.v1.RepositoryChangeSignalR\rchangeSignals\x124\n" +
	"\x04page\x18\x02 \x01(\v2 .kodex.providers.v1.PageResponseR\x04page\"\x9f\x02\n" +
	"(GetRepositoryAdoptionScanSnapshotRequest\x12$\n" +
	"\vsnapshot_id\x18\x01 \x01(\tH\x00R\n" +
	"snapshotId\x88\x01\x01\x12&\n" +
	"\fsnapshot_key\x18\x02 \x01(\tH\x01R\vsnapshotKey\x88\x01\x01\x127\n" +
	"\x15provider_operation_id\x18\x03 \x01(\tH\x02R\x13providerOperationId\x88\x01\x01\x121\n" +
	"\x04meta\x18\x04 \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB\x0e\n" +
	"\f_snapshot_idB\x0f\n" +
	"\r_snapshot_keyB\x18\n" +
	"\x16_provider_operation_id\"\xe0\x01\n" +
	"&RepositoryAdoptionScanSnapshotResponse\x12L\n" +
	"\vread_status\x18\x01 \x01(\x0e2+.kodex.providers.v1.ProviderOwnedDataStatusR\n" +
	"readStatus\x12h\n" +
	"\x16adoption_scan_snapshot\x18\x02 \x01(\v22.kodex.providers.v1.RepositoryAdoptionScanSnapshotR\x14adoptionScanSnapshot\"\xbf\x05\n" +
	"*ListRepositoryAdoptionScanSnapshotsRequest\x12\"\n" +
	"\n" +
	"project_id\x18\x01 \x01(\tH\x00R\tprojectId\x88\x01\x01\x12(\n" +
	"\rrepository_id\x18\x02 \x01(\tH\x01R\frepositoryId\x88\x01\x01\x12(\n" +
	"\rprovider_slug\x18\x03 \x01(\tH\x02R\fproviderSlug\x88\x01\x01\x123\n" +
	"\x13external_account_id\x18\x04 \x01(\tH\x03R\x11externalAccountId\x88\x01\x01\x125\n" +
	"\x14repository_full_name\x18\x05 \x01(\tH\x04R\x12repositoryFullName\x88\x01\x01\x129\n" +
	"\x16provider_repository_id\x18\x06 \x01(\tH\x05R\x14providerRepositoryId\x88\x01\x01\x12L\n" +
	"\bstatuses\x18\a \x03(\x0e20.kodex.providers.v1.RepositoryAdoptionScanStatusR\bstatuses\x12*\n" +
	"\x0eobserved_since\x18\b \x01(\tH\x06R\robservedSince\x88\x01\x01\x123\n" +
	"\x04page\x18\t \x01(\v2\x1f.kodex.providers.v1.PageRequestR\x04page\x121\n" +
	"\x04meta\x18\n" +
	" \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB\r\n" +
	"\v_project_idB\x10\n" +
	"\x0e_repository_idB\x10\n" +
	"\x0e_provider_slugB\x16\n" +
	"\x14_external_account_idB\x17\n" +
	"\x15_repository_full_nameB\x19\n" +
	"\x17_provider_repository_idB\x11\n" +
	"\x0f_observed_since\"\xcf\x01\n" +
	"+ListRepositoryAdoptionScanSnapshotsResponse\x12j\n" +
	"\x17adoption_scan_snapshots\x18\x01 \x03(\v22.kodex.providers.v1.RepositoryAdoptionScanSnapshotR\x15adoptionScanSnapshots\x124\n" +
	"\x04page\x18\x02 \x01(\v2 .kodex.providers.v1.PageResponseR\x04page\"\x9b\x06\n" +
	"\x18UpdatePullRequestRequest\x12:\n" +
	"\x06target\x18\x01 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x06target\x12\x19\n" +
	"\x05title\x18\x02 \x01(\tH\x00R\x05title\x88\x01\x01\x12\x17\n" +
	"\x04body\x18\x03 \x01(\tH\x01R\x04body\x88\x01\x01\x12;\n" +
	"\x06labels\x18\x04 \x01(\v2#.kodex.providers.v1.StringListPatchR\x06labels\x12]\n" +
	"\x18assignee_provider_logins\x18\x05 \x01(\v2#.kodex.providers.v1.StringListPatchR\x16assigneeProviderLogins\x12!\n" +
	"\tmilestone\x18\x06 \x01(\tH\x02R\tmilestone\x88\x01\x01\x12\x19\n" +
	"\x05state\x18\a \x01(\tH\x03R\x05state\x88\x01\x01\x12$\n" +
	"\vbase_branch\x18\b \x01(\tH\x04R\n" +
	"baseBranch\x88\x01\x01\x127\n" +
	"\x15maintainer_can_modify\x18\t \x01(\bH\x05R\x13maintainerCanModify\x88\x01\x01\x12*\n" +
	"\x0ewatermark_json\x18\n" +
	" \x01(\tH\x06R\rwatermarkJson\x88\x01\x01\x12?\n" +
	"\x19expected_provider_version\x18\v \x01(\tH\aR\x17expectedProviderVersion\x88\x01\x01\x123\n" +
	"\x04meta\x18\f \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\r \x01(\tR\x11externalAccountIdB\b\n" +
	"\x06_titleB\a\n" +
	"\x05_bodyB\f\n" +
	"\n" +
	"_milestoneB\b\n" +
	"\x06_stateB\x0e\n" +
	"\f_base_branchB\x18\n" +
	"\x16_maintainer_can_modifyB\x11\n" +
	"\x0f_watermark_jsonB\x1c\n" +
	"\x1a_expected_provider_version\"\xdc\x02\n" +
	"\x19CreateReviewSignalRequest\x12:\n" +
	"\x06target\x18\x01 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x06target\x128\n" +
	"\x04kind\x18\x02 \x01(\x0e2$.kodex.providers.v1.ReviewSignalKindR\x04kind\x12\x12\n" +
	"\x04body\x18\x03 \x01(\tR\x04body\x12P\n" +
	"\x0finline_comments\x18\x04 \x03(\v2'.kodex.providers.v1.ReviewInlineCommentR\x0einlineComments\x123\n" +
	"\x04meta\x18\x05 \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\x06 \x01(\tR\x11externalAccountId\"\x87\x04\n" +
	"\x19UpdateRelationshipRequest\x12:\n" +
	"\x06source\x18\x01 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x06source\x12:\n" +
	"\x06target\x18\x02 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x06target\x123\n" +
	"\x13target_provider_ref\x18\x03 \x01(\tH\x00R\x11targetProviderRef\x88\x01\x01\x12+\n" +
	"\x11relationship_type\x18\x04 \x01(\tR\x10relationshipType\x12G\n" +
	"\vsource_kind\x18\x05 \x01(\x0e2&.kodex.providers.v1.RelationshipSourceR\n" +
	"sourceKind\x12J\n" +
	"\n" +
	"confidence\x18\x06 \x01(\x0e2*.kodex.providers.v1.RelationshipConfidenceR\n" +
	"confidence\x123\n" +
	"\x04meta\x18\a \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04meta\x12.\n" +
	"\x13external_account_id\x18\b \x01(\tR\x11externalAccountIdB\x16\n" +
	"\x14_target_provider_ref\"\xbd\x03\n" +
	"\x1eProviderOperationCommandResult\x12:\n" +
	"\x06target\x18\x01 \x01(\v2\".kodex.providers.v1.ProviderTargetR\x06target\x12\"\n" +
	"\n" +
	"result_ref\x18\x02 \x01(\tH\x00R\tresultRef\x88\x01\x01\x121\n" +
	"\x12provider_object_id\x18\x03 \x01(\tH\x01R\x10providerObjectId\x88\x01\x01\x12.\n" +
	"\x10provider_version\x18\x04 \x01(\tH\x02R\x0fproviderVersion\x88\x01\x01\x127\n" +
	"\x17reconciliation_enqueued\x18\x05 \x01(\bR\x16reconciliationEnqueued\x12.\n" +
	"\x13emitted_event_types\x18\x06 \x03(\tR\x11emittedEventTypes\x12$\n" +
	"\vbase_branch\x18\a \x01(\tH\x03R\n" +
	"baseBranch\x88\x01\x01B\r\n" +
	"\v_result_refB\x15\n" +
	"\x13_provider_object_idB\x13\n" +
	"\x11_provider_versionB\x0e\n" +
	"\f_base_branch\"\xa5\x04\n" +
	"\x19ProviderOperationResponse\x12T\n" +
	"\x12provider_operation\x18\x01 \x01(\v2%.kodex.providers.v1.ProviderOperationR\x11providerOperation\x12X\n" +
	"\x14work_item_projection\x18\x02 \x01(\v2&.kodex.providers.v1.WorkItemProjectionR\x12workItemProjection\x12T\n" +
	"\x12comment_projection\x18\x03 \x01(\v2%.kodex.providers.v1.CommentProjectionR\x11commentProjection\x12L\n" +
	"\frelationship\x18\x04 \x01(\v2(.kodex.providers.v1.ProviderRelationshipR\frelationship\x12J\n" +
	"\x06result\x18\x05 \x01(\v22.kodex.providers.v1.ProviderOperationCommandResultR\x06result\x12h\n" +
	"\x16adoption_scan_snapshot\x18\x06 \x01(\v22.kodex.providers.v1.RepositoryAdoptionScanSnapshotR\x14adoptionScanSnapshot\"\xd8\x02\n" +
	"%GetProviderAccountRuntimeStateRequest\x12M\n" +
	"!provider_account_runtime_state_id\x18\x01 \x01(\tH\x00R\x1dproviderAccountRuntimeStateId\x88\x01\x01\x123\n" +
	"\x13external_account_id\x18\x02 \x01(\tH\x01R\x11externalAccountId\x88\x01\x01\x12(\n" +
	"\rprovider_slug\x18\x03 \x01(\tH\x02R\fproviderSlug\x88\x01\x01\x121\n" +
	"\x04meta\x18\x04 \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB$\n" +
	"\"_provider_account_runtime_state_idB\x16\n" +
	"\x14_external_account_idB\x10\n" +
	"\x0e_provider_slug\"{\n" +
	"#ProviderAccountRuntimeStateResponse\x12T\n" +
	"\rruntime_state\x18\x01 \x01(\v2/.kodex.providers.v1.ProviderAccountRuntimeStateR\fruntimeState\"\xc2\x03\n" +
	"'ListProviderAccountRuntimeStatesRequest\x12(\n" +
	"\rprovider_slug\x18\x01 \x01(\tH\x00R\fproviderSlug\x88\x01\x01\x120\n" +
	"\x14external_account_ids\x18\x02 \x03(\tR\x12externalAccountIds\x12L\n" +
	"\bstatuses\x18\x03 \x03(\x0e20.kodex.providers.v1.ProviderAccountRuntimeStatusR\bstatuses\x12\"\n" +
	"\n" +
	"project_id\x18\x04 \x01(\tH\x01R\tprojectId\x88\x01\x01\x12,\n" +
	"\x0forganization_id\x18\x05 \x01(\tH\x02R\x0eorganizationId\x88\x01\x01\x123\n" +
	"\x04page\x18\x06 \x01(\v2\x1f.kodex.providers.v1.PageRequestR\x04page\x121\n" +
	"\x04meta\x18\a \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB\x10\n" +
	"\x0e_provider_slugB\r\n" +
	"\v_project_idB\x12\n" +
	"\x10_organization_id\"\xb8\x01\n" +
	"(ListProviderAccountRuntimeStatesResponse\x12V\n" +
	"\x0eruntime_states\x18\x01 \x03(\v2/.kodex.providers.v1.ProviderAccountRuntimeStateR\rruntimeStates\x124\n" +
	"\x04page\x18\x02 \x01(\v2 .kodex.providers.v1.PageResponseR\x04page\"\x9c\x03\n" +
	"\"RecordProviderLimitSnapshotRequest\x12.\n" +
	"\x13external_account_id\x18\x01 \x01(\tR\x11externalAccountId\x12#\n" +
	"\rprovider_slug\x18\x02 \x01(\tR\fproviderSlug\x12\x1f\n" +
	"\vlimit_class\x18\x03 \x01(\tR\n" +
	"limitClass\x12!\n" +
	"\tremaining\x18\x04 \x01(\x03H\x00R\tremaining\x88\x01\x01\x12$\n" +
	"\vlimit_value\x18\x05 \x01(\x03H\x01R\n" +
	"limitValue\x88\x01\x01\x12\x1e\n" +
	"\breset_at\x18\x06 \x01(\tH\x02R\aresetAt\x88\x01\x01\x12\x1f\n" +
	"\vcaptured_at\x18\a \x01(\tR\n" +
	"capturedAt\x12\x16\n" +
	"\x06source\x18\b \x01(\tR\x06source\x123\n" +
	"\x04meta\x18\t \x01(\v2\x1f.kodex.providers.v1.CommandMetaR\x04metaB\f\n" +
	"\n" +
	"_remainingB\x0e\n" +
	"\f_limit_valueB\v\n" +
	"\t_reset_at\"q\n" +
	"\x1dProviderLimitSnapshotResponse\x12P\n" +
	"\x0elimit_snapshot\x18\x01 \x01(\v2).kodex.providers.v1.ProviderLimitSnapshotR\rlimitSnapshot\"\xf8\x02\n" +
	"!ListProviderLimitSnapshotsRequest\x123\n" +
	"\x13external_account_id\x18\x01 \x01(\tH\x00R\x11externalAccountId\x88\x01\x01\x12(\n" +
	"\rprovider_slug\x18\x02 \x01(\tH\x01R\fproviderSlug\x88\x01\x01\x12#\n" +
	"\rlimit_classes\x18\x03 \x03(\tR\flimitClasses\x12*\n" +
	"\x0ecaptured_since\x18\x04 \x01(\tH\x02R\rcapturedSince\x88\x01\x01\x123\n" +
	"\x04page\x18\x05 \x01(\v2\x1f.kodex.providers.v1.PageRequestR\x04page\x121\n" +
	"\x04meta\x18\x06 \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB\x16\n" +
	"\x14_external_account_idB\x10\n" +
	"\x0e_provider_slugB\x11\n" +
	"\x0f_captured_since\"\xae\x01\n" +
	"\"ListProviderLimitSnapshotsResponse\x12R\n" +
	"\x0flimit_snapshots\x18\x01 \x03(\v2).kodex.providers.v1.ProviderLimitSnapshotR\x0elimitSnapshots\x124\n" +
	"\x04page\x18\x02 \x01(\v2 .kodex.providers.v1.PageResponseR\x04page\"\x9c\x04\n" +
	"\x1dListProviderOperationsRequest\x12(\n" +
	"\rprovider_slug\x18\x01 \x01(\tH\x00R\fproviderSlug\x88\x01\x01\x123\n" +
	"\x13external_account_id\x18\x02 \x01(\tH\x01R\x11externalAccountId\x88\x01\x01\x12R\n" +
	"\x0foperation_types\x18\x03 \x03(\x0e2).kodex.providers.v1.ProviderOperationTypeR\x0eoperationTypes\x12G\n" +
	"\bstatuses\x18\x04 \x03(\x0e2+.kodex.providers.v1.ProviderOperationStatusR\bstatuses\x12\"\n" +
	"\n" +
	"target_ref\x18\x05 \x01(\tH\x02R\ttargetRef\x88\x01\x01\x12(\n" +
	"\rstarted_since\x18\x06 \x01(\tH\x03R\fstartedSince\x88\x01\x01\x123\n" +
	"\x04page\x18\a \x01(\v2\x1f.kodex.providers.v1.PageRequestR\x04page\x121\n" +
	"\x04meta\x18\b \x01(\v2\x1d.kodex.providers.v1.QueryMetaR\x04metaB\x10\n" +
	"\x0e_provider_slugB\x16\n" +
	"\x14_external_account_idB\r\n" +
	"\v_target_refB\x10\n" +
	"\x0e_started_since\"\xae\x01\n" +
	"\x1eListProviderOperationsResponse\x12V\n" +
	"\x13provider_operations\x18\x01 \x03(\v2%.kodex.providers.v1.ProviderOperationR\x12providerOperations\x124\n" +
	"\x04page\x18\x02 \x01(\v2 .kodex.providers.v1.PageResponseR\x04page*\xf0\x01\n" +
	"\x1aProviderOperationRiskLevel\x12-\n" +
	")PROVIDER_OPERATION_RISK_LEVEL_UNSPECIFIED\x10\x00\x12%\n" +
	"!PROVIDER_OPERATION_RISK_LEVEL_LOW\x10\x01\x12(\n" +
	"$PROVIDER_OPERATION_RISK_LEVEL_MEDIUM\x10\x02\x12&\n" +
	"\"PROVIDER_OPERATION_RISK_LEVEL_HIGH\x10\x03\x12*\n" +
	"&PROVIDER_OPERATION_RISK_LEVEL_CRITICAL\x10\x04*\x8b\x01\n" +
	"\fWorkItemKind\x12\x1e\n" +
	"\x1aWORK_ITEM_KIND_UNSPECIFIED\x10\x00\x12\x18\n" +
	"\x14WORK_ITEM_KIND_ISSUE\x10\x01\x12\x1f\n" +
	"\x1bWORK_ITEM_KIND_PULL_REQUEST\x10\x02\x12 \n" +
	"\x1cWORK_ITEM_KIND_MERGE_REQUEST\x10\x03*\xe1\x01\n" +
	"\x17WebhookProcessingStatus\x12)\n" +
	"%WEBHOOK_PROCESSING_STATUS_UNSPECIFIED\x10\x00\x12%\n" +
	"!WEBHOOK_PROCESSING_STATUS_PENDING\x10\x01\x12'\n" +
	"#WEBHOOK_PROCESSING_STATUS_PROCESSED\x10\x02\x12$\n" +
	" WEBHOOK_PROCESSING_STATUS_FAILED\x10\x03\x12%\n" +
	"!WEBHOOK_PROCESSING_STATUS_IGNORED\x10\x04*\xe1\x01\n" +
	"\x17WorkItemWatermarkStatus\x12*\n" +
	"&WORK_ITEM_WATERMARK_STATUS_UNSPECIFIED\x10\x00\x12&\n" +
	"\"WORK_ITEM_WATERMARK_STATUS_MISSING\x10\x01\x12$\n" +
	" WORK_ITEM_WATERMARK_STATUS_VALID\x10\x02\x12&\n" +
	"\"WORK_ITEM_WATERMARK_STATUS_INVALID\x10\x03\x12$\n" +
	" WORK_ITEM_WATERMARK_STATUS_STALE\x10\x04*\xca\x01\n" +
	"\x13WorkItemDriftStatus\x12&\n" +
	"\"WORK_ITEM_DRIFT_STATUS_UNSPECIFIED\x10\x00\x12 \n" +
	"\x1cWORK_ITEM_DRIFT_STATUS_FRESH\x10\x01\x12$\n" +
	" WORK_ITEM_DRIFT_STATUS_SUSPECTED\x10\x02\x12 \n" +
	"\x1cWORK_ITEM_DRIFT_STATUS_STALE\x10\x03\x12!\n" +
	"\x1dWORK_ITEM_DRIFT_STATUS_FAILED\x10\x04*\x91\x01\n" +
	"\vCommentKind\x12\x1c\n" +
	"\x18COMMENT_KIND_UNSPECIFIED\x10\x00\x12\x18\n" +
	"\x14COMMENT_KIND_COMMENT\x10\x01\x12\x17\n" +
	"\x13COMMENT_KIND_REVIEW\x10\x02\x12\x18\n" +
	"\x14COMMENT_KIND_MENTION\x10\x03\x12\x17\n" +
	"\x13COMMENT_KIND_SYSTEM\x10\x04*\xbc\x01\n" +
	"\vReviewState\x12\x1c\n" +
	"\x18REVIEW_STATE_UNSPECIFIED\x10\x00\x12\x19\n" +
	"\x15REVIEW_STATE_APPROVED\x10\x01\x12\"\n" +
	"\x1eREVIEW_STATE_CHANGES_REQUESTED\x10\x02\x12\x1a\n" +
	"\x16REVIEW_STATE_COMMENTED\x10\x03\x12\x1a\n" +
	"\x16REVIEW_STATE_DISMISSED\x10\x04\x12\x18\n" +
	"\x14REVIEW_STATE_PENDING\x10\x05*\xb5\x01\n" +
	"\x16RelationshipConfidence\x12'\n" +
	"#RELATIONSHIP_CONFIDENCE_UNSPECIFIED\x10\x00\x12%\n" +
	"!RELATIONSHIP_CONFIDENCE_CONFIRMED\x10\x01\x12$\n" +
	" RELATIONSHIP_CONFIDENCE_INFERRED\x10\x02\x12%\n" +
	"!RELATIONSHIP_CONFIDENCE_SUSPECTED\x10\x03*\xe7\x01\n" +
	"\x12RelationshipSource\x12#\n" +
	"\x1fRELATIONSHIP_SOURCE_UNSPECIFIED\x10\x00\x12 \n" +
	"\x1cRELATIONSHIP_SOURCE_PROVIDER\x10\x01\x12!\n" +
	"\x1dRELATIONSHIP_SOURCE_WATERMARK\x10\x02\x12\x1f\n" +
	"\x1bRELATIONSHIP_SOURCE_COMMENT\x10\x03\x12\x1e\n" +
	"\x1aRELATIONSHIP_SOURCE_MANUAL\x10\x04\x12&\n" +
	"\"RELATIONSHIP_SOURCE_RECONCILIATION\x10\x05*\xde\x01\n" +
	"\x13SyncCursorScopeType\x12&\n" +
	"\"SYNC_CURSOR_SCOPE_TYPE_UNSPECIFIED\x10\x00\x12%\n" +
	"!SYNC_CURSOR_SCOPE_TYPE_REPOSITORY\x10\x01\x12'\n" +
	"#SYNC_CURSOR_SCOPE_TYPE_ORGANIZATION\x10\x02\x12$\n" +
	" SYNC_CURSOR_SCOPE_TYPE_WORK_ITEM\x10\x03\x12)\n" +
	"%SYNC_CURSOR_SCOPE_TYPE_PACKAGE_SOURCE\x10\x04*\x87\x02\n" +
	"\x10SyncArtifactKind\x12\"\n" +
	"\x1eSYNC_ARTIFACT_KIND_UNSPECIFIED\x10\x00\x12\x1c\n" +
	"\x18SYNC_ARTIFACT_KIND_ISSUE\x10\x01\x12#\n" +
	"\x1fSYNC_ARTIFACT_KIND_PULL_REQUEST\x10\x02\x12$\n" +
	" SYNC_ARTIFACT_KIND_MERGE_REQUEST\x10\x03\x12\x1e\n" +
	"\x1aSYNC_ARTIFACT_KIND_COMMENT\x10\x04\x12#\n" +
	"\x1fSYNC_ARTIFACT_KIND_RELATIONSHIP\x10\x05\x12!\n" +
	"\x1dSYNC_ARTIFACT_KIND_REPOSITORY\x10\x06*\x96\x01\n" +
	"\x12SyncCursorPriority\x12$\n" +
	" SYNC_CURSOR_PRIORITY_UNSPECIFIED\x10\x00\x12\x1c\n" +
	"\x18SYNC_CURSOR_PRIORITY_HOT\x10\x01\x12\x1d\n" +
	"\x19SYNC_CURSOR_PRIORITY_WARM\x10\x02\x12\x1d\n" +
	"\x19SYNC_CURSOR_PRIORITY_COLD\x10\x03*\xbf\x02\n" +
	"\x1cProviderAccountRuntimeStatus\x12/\n" +
	"+PROVIDER_ACCOUNT_RUNTIME_STATUS_UNSPECIFIED\x10\x00\x12*\n" +
	"&PROVIDER_ACCOUNT_RUNTIME_STATUS_ACTIVE\x10\x01\x12<\n" +
	"8PROVIDER_ACCOUNT_RUNTIME_STATUS_REAUTHORIZATION_REQUIRED\x10\x02\x12+\n" +
	"'PROVIDER_ACCOUNT_RUNTIME_STATUS_LIMITED\x10\x03\x12,\n" +
	"(PROVIDER_ACCOUNT_RUNTIME_STATUS_DISABLED\x10\x04\x12)\n" +
	"%PROVIDER_ACCOUNT_RUNTIME_STATUS_ERROR\x10\x05*\x8f\x05\n" +
	"\x15ProviderOperationType\x12'\n" +
	"#PROVIDER_OPERATION_TYPE_UNSPECIFIED\x10\x00\x12(\n" +
	"$PROVIDER_OPERATION_TYPE_CREATE_ISSUE\x10\x01\x12(\n" +
	"$PROVIDER_OPERATION_TYPE_UPDATE_ISSUE\x10\x02\x12*\n" +
	"&PROVIDER_OPERATION_TYPE_CREATE_COMMENT\x10\x03\x12*\n" +
	"&PROVIDER_OPERATION_TYPE_UPDATE_COMMENT\x10\x04\x12/\n" +
	"+PROVIDER_OPERATION_TYPE_CREATE_PULL_REQUEST\x10\x05\x120\n" +
	",PROVIDER_OPERATION_TYPE_CREATE_REVIEW_SIGNAL\x10\x06\x12/\n" +
	"+PROVIDER_OPERATION_TYPE_UPDATE_RELATIONSHIP\x10\a\x12/\n" +
	"+PROVIDER_OPERATION_TYPE_UPDATE_PULL_REQUEST\x10\b\x129\n" +
	"5PROVIDER_OPERATION_TYPE_CREATE_BOOTSTRAP_PULL_REQUEST\x10\t\x12-\n" +
	")PROVIDER_OPERATION_TYPE_CREATE_REPOSITORY\x10\n" +
	"\x128\n" +
	"4PROVIDER_OPERATION_TYPE_CREATE_ADOPTION_PULL_REQUEST\x10\v\x128\n" +
	"4PROVIDER_OPERATION_TYPE_SCAN_REPOSITORY_FOR_ADOPTION\x10\f*\x94\x02\n" +
	"\x17ProviderOperationStatus\x12)\n" +
	"%PROVIDER_OPERATION_STATUS_UNSPECIFIED\x10\x00\x12'\n" +
	"#PROVIDER_OPERATION_STATUS_SUCCEEDED\x10\x01\x12$\n" +
	" PROVIDER_OPERATION_STATUS_FAILED\x10\x02\x12.\n" +
	"*PROVIDER_OPERATION_STATUS_RETRYABLE_FAILED\x10\x03\x12$\n" +
	" PROVIDER_OPERATION_STATUS_DENIED\x10\x04\x12)\n" +
	"%PROVIDER_OPERATION_STATUS_IN_PROGRESS\x10\x05*\x92\x01\n" +
	"\x13RepositoryOwnerKind\x12%\n" +
	"!REPOSITORY_OWNER_KIND_UNSPECIFIED\x10\x00\x12&\n" +
	"\"REPOSITORY_OWNER_KIND_ORGANIZATION\x10\x01\x12,\n" +
	"(REPOSITORY_OWNER_KIND_AUTHENTICATED_USER\x10\x02*\xa6\x01\n" +
	"\x14RepositoryVisibility\x12%\n" +
	"!REPOSITORY_VISIBILITY_UNSPECIFIED\x10\x00\x12 \n" +
	"\x1cREPOSITORY_VISIBILITY_PUBLIC\x10\x01\x12!\n" +
	"\x1dREPOSITORY_VISIBILITY_PRIVATE\x10\x02\x12\"\n" +
	"\x1eREPOSITORY_VISIBILITY_INTERNAL\x10\x03*\xdd\x01\n" +
	"\x1cRepositoryAdoptionScanStatus\x12/\n" +
	"+REPOSITORY_ADOPTION_SCAN_STATUS_UNSPECIFIED\x10\x00\x12-\n" +
	")REPOSITORY_ADOPTION_SCAN_STATUS_COMPLETED\x10\x01\x12+\n" +
	"'REPOSITORY_ADOPTION_SCAN_STATUS_LIMITED\x10\x02\x120\n" +
	",REPOSITORY_ADOPTION_SCAN_STATUS_NEEDS_REVIEW\x10\x03*\xe8\x01\n" +
	"\x17ProviderOwnedDataStatus\x12*\n" +
	"&PROVIDER_OWNED_DATA_STATUS_UNSPECIFIED\x10\x00\x12$\n" +
	" PROVIDER_OWNED_DATA_STATUS_READY\x10\x01\x12(\n" +
	"$PROVIDER_OWNED_DATA_STATUS_NOT_FOUND\x10\x02\x12+\n" +
	"'PROVIDER_OWNED_DATA_STATUS_NOT_VERIFIED\x10\x03\x12$\n" +
	" PROVIDER_OWNED_DATA_STATUS_STALE\x10\x04*\xa0\x01\n" +
	"\x19RepositoryMergeSignalKind\x12,\n" +
	"(REPOSITORY_MERGE_SIGNAL_KIND_UNSPECIFIED\x10\x00\x12*\n" +
	"&REPOSITORY_MERGE_SIGNAL_KIND_BOOTSTRAP\x10\x01\x12)\n" +
	"%REPOSITORY_MERGE_SIGNAL_KIND_ADOPTION\x10\x02*x\n" +
	"\x1bRepositoryMergeSignalStatus\x12.\n" +
	"*REPOSITORY_MERGE_SIGNAL_STATUS_UNSPECIFIED\x10\x00\x12)\n" +
	"%REPOSITORY_MERGE_SIGNAL_STATUS_MERGED\x10\x01*\xaa\x01\n" +
	"\x1aRepositoryChangeSignalKind\x12-\n" +
	")REPOSITORY_CHANGE_SIGNAL_KIND_UNSPECIFIED\x10\x00\x12&\n" +
	"\"REPOSITORY_CHANGE_SIGNAL_KIND_PUSH\x10\x01\x125\n" +
	"1REPOSITORY_CHANGE_SIGNAL_KIND_PULL_REQUEST_MERGED\x10\x02*}\n" +
	"\x1cRepositoryChangeSignalStatus\x12/\n" +
	"+REPOSITORY_CHANGE_SIGNAL_STATUS_UNSPECIFIED\x10\x00\x12,\n" +
	"(REPOSITORY_CHANGE_SIGNAL_STATUS_OBSERVED\x10\x01*\xf7\x01\n" +
	"!RepositoryChangePathSummaryStatus\x125\n" +
	"1REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_UNSPECIFIED\x10\x00\x12/\n" +
	"+REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_READY\x10\x01\x125\n" +
	"1REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_UNAVAILABLE\x10\x02\x123\n" +
	"/REPOSITORY_CHANGE_PATH_SUMMARY_STATUS_TRUNCATED\x10\x03*\x92\x04\n" +
	"\x1cRepositoryChangePathCategory\x12/\n" +
	"+REPOSITORY_CHANGE_PATH_CATEGORY_UNSPECIFIED\x10\x00\x123\n" +
	"/REPOSITORY_CHANGE_PATH_CATEGORY_SERVICES_POLICY\x10\x01\x122\n" +
	".REPOSITORY_CHANGE_PATH_CATEGORY_SERVICE_SOURCE\x10\x02\x122\n" +
	".REPOSITORY_CHANGE_PATH_CATEGORY_SERVICE_CONFIG\x10\x03\x123\n" +
	"/REPOSITORY_CHANGE_PATH_CATEGORY_DEPLOY_MANIFEST\x10\x04\x122\n" +
	".REPOSITORY_CHANGE_PATH_CATEGORY_RUNTIME_CONFIG\x10\x05\x121\n" +
	"-REPOSITORY_CHANGE_PATH_CATEGORY_DOCUMENTATION\x10\x06\x12(\n" +
	"$REPOSITORY_CHANGE_PATH_CATEGORY_TEST\x10\a\x123\n" +
	"/REPOSITORY_CHANGE_PATH_CATEGORY_PLATFORM_POLICY\x10\b\x12)\n" +
	"%REPOSITORY_CHANGE_PATH_CATEGORY_OTHER\x10\t*\x97\x04\n" +
	"\x1cRepositoryAdoptionMarkerKind\x12/\n" +
	"+REPOSITORY_ADOPTION_MARKER_KIND_UNSPECIFIED\x10\x00\x126\n" +
	"2REPOSITORY_ADOPTION_MARKER_KIND_SERVICE_DESCRIPTOR\x10\x01\x12.\n" +
	"*REPOSITORY_ADOPTION_MARKER_KIND_GITMODULES\x10\x02\x12*\n" +
	"&REPOSITORY_ADOPTION_MARKER_KIND_README\x10\x03\x12*\n" +
	"&REPOSITORY_ADOPTION_MARKER_KIND_AGENTS\x10\x04\x12(\n" +
	"$REPOSITORY_ADOPTION_MARKER_KIND_DOCS\x10\x05\x12,\n" +
	"(REPOSITORY_ADOPTION_MARKER_KIND_WORKFLOW\x10\x06\x12*\n" +
	"&REPOSITORY_ADOPTION_MARKER_KIND_MODULE\x10\a\x12+\n" +
	"'REPOSITORY_ADOPTION_MARKER_KIND_PACKAGE\x10\b\x12*\n" +
	"&REPOSITORY_ADOPTION_MARKER_KIND_DEPLOY\x10\t\x12)\n" +
	"%REPOSITORY_ADOPTION_MARKER_KIND_OTHER\x10\n" +
	"*\xa1\x01\n" +
	"\x10ReviewSignalKind\x12\"\n" +
	"\x1eREVIEW_SIGNAL_KIND_UNSPECIFIED\x10\x00\x12\x1e\n" +
	"\x1aREVIEW_SIGNAL_KIND_COMMENT\x10\x01\x12\x1f\n" +
	"\x1bREVIEW_SIGNAL_KIND_APPROVAL\x10\x02\x12(\n" +
	"$REVIEW_SIGNAL_KIND_CHANGES_REQUESTED\x10\x032\xdc%\n" +
	"\x12ProviderHubService\x12m\n" +
	"\x12IngestWebhookEvent\x12-.kodex.providers.v1.IngestWebhookEventRequest\x1a(.kodex.providers.v1.WebhookEventResponse\x12g\n" +
	"\x0fGetWebhookEvent\x12*.kodex.providers.v1.GetWebhookEventRequest\x1a(.kodex.providers.v1.WebhookEventResponse\x12p\n" +
	"\x11ListWebhookEvents\x12,.kodex.providers.v1.ListWebhookEventsRequest\x1a-.kodex.providers.v1.ListWebhookEventsResponse\x12\x7f\n" +
	"\x1bRetryWebhookEventProcessing\x126.kodex.providers.v1.RetryWebhookEventProcessingRequest\x1a(.kodex.providers.v1.WebhookEventResponse\x12\x94\x01\n" +
	"\x1dCleanupExpiredWebhookPayloads\x128.kodex.providers.v1.CleanupExpiredWebhookPayloadsRequest\x1a9.kodex.providers.v1.CleanupExpiredWebhookPayloadsResponse\x12y\n" +
	"\x15GetWorkItemProjection\x120.kodex.providers.v1.GetWorkItemProjectionRequest\x1a..kodex.providers.v1.WorkItemProjectionResponse\x12\x81\x01\n" +
	"\x19FindWorkItemByProviderRef\x124.kodex.providers.v1.FindWorkItemByProviderRefRequest\x1a..kodex.providers.v1.WorkItemProjectionResponse\x12\x82\x01\n" +
	"\x17ListWorkItemProjections\x122.kodex.providers.v1.ListWorkItemProjectionsRequest\x1a3.kodex.providers.v1.ListWorkItemProjectionsResponse\x12a\n" +
	"\fListComments\x12'.kodex.providers.v1.ListCommentsRequest\x1a(.kodex.providers.v1.ListCommentsResponse\x12p\n" +
	"\x11ListRelationships\x12,.kodex.providers.v1.ListRelationshipsRequest\x1a-.kodex.providers.v1.ListRelationshipsResponse\x12\x82\x01\n" +
	"\x18GetRepositoryMergeSignal\x123.kodex.providers.v1.GetRepositoryMergeSignalRequest\x1a1.kodex.providers.v1.RepositoryMergeSignalResponse\x12\x8b\x01\n" +
	"\x1aListRepositoryMergeSignals\x125.kodex.providers.v1.ListRepositoryMergeSignalsRequest\x1a6.kodex.providers.v1.ListRepositoryMergeSignalsResponse\x12\x85\x01\n" +
	"\x19GetRepositoryChangeSignal\x124.kodex.providers.v1.GetRepositoryChangeSignalRequest\x1a2.kodex.providers.v1.RepositoryChangeSignalResponse\x12\x8e\x01\n" +
	"\x1bListRepositoryChangeSignals\x126.kodex.providers.v1.ListRepositoryChangeSignalsRequest\x1a7.kodex.providers.v1.ListRepositoryChangeSignalsResponse\x12\x9d\x01\n" +
	"!GetRepositoryAdoptionScanSnapshot\x12<.kodex.providers.v1.GetRepositoryAdoptionScanSnapshotRequest\x1a:.kodex.providers.v1.RepositoryAdoptionScanSnapshotResponse\x12\xa6\x01\n" +
	"#ListRepositoryAdoptionScanSnapshots\x12>.kodex.providers.v1.ListRepositoryAdoptionScanSnapshotsRequest\x1a?.kodex.providers.v1.ListRepositoryAdoptionScanSnapshotsResponse\x12\x8f\x01\n" +
	"\x1eRegisterProviderArtifactSignal\x129.kodex.providers.v1.RegisterProviderArtifactSignalRequest\x1a2.kodex.providers.v1.ProviderArtifactSignalResponse\x12|\n" +
	"\x15EnqueueReconciliation\x120.kodex.providers.v1.EnqueueReconciliationRequest\x1a1.kodex.providers.v1.ReconciliationRequestResponse\x12\x7f\n" +
	"\x16RunReconciliationBatch\x121.kodex.providers.v1.RunReconciliationBatchRequest\x1a2.kodex.providers.v1.RunReconciliationBatchResponse\x12a\n" +
	"\rGetSyncCursor\x12(.kodex.providers.v1.GetSyncCursorRequest\x1a&.kodex.providers.v1.SyncCursorResponse\x12j\n" +
	"\x0fListSyncCursors\x12*.kodex.providers.v1.ListSyncCursorsRequest\x1a+.kodex.providers.v1.ListSyncCursorsResponse\x12d\n" +
	"\vCreateIssue\x12&.kodex.providers.v1.CreateIssueRequest\x1a-.kodex.providers.v1.ProviderOperationResponse\x12d\n" +
	"\vUpdateIssue\x12&.kodex.providers.v1.UpdateIssueRequest\x1a-.kodex.providers.v1.ProviderOperationResponse\x12h\n" +
	"\rCreateComment\x12(.kodex.providers.v1.CreateCommentRequest\x1a-.kodex.providers.v1.ProviderOperationResponse\x12h\n" +
	"\rUpdateComment\x12(.kodex.providers.v1.UpdateCommentRequest\x1a-.kodex.providers.v1.ProviderOperationResponse\x12p\n" +
	"\x11CreatePullRequest\x12,.kodex.providers.v1.CreatePullRequestRequest\x1a-.kodex.providers.v1.ProviderOperationResponse\x12n\n" +
	"\x10CreateRepository\x12+.kodex.providers.v1.CreateRepositoryRequest\x1a-.kodex.providers.v1.ProviderOperationResponse\x12\x82\x01\n" +
	"\x1aCreateBootstrapPullRequest\x125.kodex.providers.v1.CreateBootstrapPullRequestRequest\x1a-.kodex.providers.v1.ProviderOperationResponse\x12\x80\x01\n" +
	"\x19CreateAdoptionPullRequest\x124.kodex.providers.v1.CreateAdoptionPullRequestRequest\x1a-.kodex.providers.v1.ProviderOperationResponse\x12\x80\x01\n" +
	"\x19ScanRepositoryForAdoption\x124.kodex.providers.v1.ScanRepositoryForAdoptionRequest\x1a-.kodex.providers.v1.ProviderOperationResponse\x12p\n" +
	"\x11UpdatePullRequest\x12,.kodex.providers.v1.UpdatePullRequestRequest\x1a-.kodex.providers.v1.ProviderOperationResponse\x12r\n" +
	"\x12CreateReviewSignal\x12-.kodex.providers.v1.CreateReviewSignalRequest\x1a-.kodex.providers.v1.ProviderOperationResponse\x12r\n" +
	"\x12UpdateRelationship\x12-.kodex.providers.v1.UpdateRelationshipRequest\x1a-.kodex.providers.v1.ProviderOperationResponse\x12\x94\x01\n" +
	"\x1eGetProviderAccountRuntimeState\x129.kodex.providers.v1.GetProviderAccountRuntimeStateRequest\x1a7.kodex.providers.v1.ProviderAccountRuntimeStateResponse\x12\x9d\x01\n" +
	" ListProviderAccountRuntimeStates\x12;.kodex.providers.v1.ListProviderAccountRuntimeStatesRequest\x1a<.kodex.providers.v1.ListProviderAccountRuntimeStatesResponse\x12\x88\x01\n" +
	"\x1bRecordProviderLimitSnapshot\x126.kodex.providers.v1.RecordProviderLimitSnapshotRequest\x1a1.kodex.providers.v1.ProviderLimitSnapshotResponse\x12\x8b\x01\n" +
	"\x1aListProviderLimitSnapshots\x125.kodex.providers.v1.ListProviderLimitSnapshotsRequest\x1a6.kodex.providers.v1.ListProviderLimitSnapshotsResponse\x12\x7f\n" +
	"\x16ListProviderOperations\x121.kodex.providers.v1.ListProviderOperationsRequest\x1a2.kodex.providers.v1.ListProviderOperationsResponseBHZFgithub.com/codex-k8s/kodex/proto/gen/go/kodex/providers/v1;providersv1b\x06proto3"

var (
	file_kodex_providers_v1_provider_hub_proto_rawDescOnce sync.Once
	file_kodex_providers_v1_provider_hub_proto_rawDescData []byte
)

func file_kodex_providers_v1_provider_hub_proto_rawDescGZIP() []byte {
	file_kodex_providers_v1_provider_hub_proto_rawDescOnce.Do(func() {
		file_kodex_providers_v1_provider_hub_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_kodex_providers_v1_provider_hub_proto_rawDesc), len(file_kodex_providers_v1_provider_hub_proto_rawDesc)))
	})
	return file_kodex_providers_v1_provider_hub_proto_rawDescData
}

var file_kodex_providers_v1_provider_hub_proto_enumTypes = make([]protoimpl.EnumInfo, 27)
var file_kodex_providers_v1_provider_hub_proto_msgTypes = make([]protoimpl.MessageInfo, 91)
var file_kodex_providers_v1_provider_hub_proto_goTypes = []any{
	(ProviderOperationRiskLevel)(0),                     // 0: kodex.providers.v1.ProviderOperationRiskLevel
	(WorkItemKind)(0),                                   // 1: kodex.providers.v1.WorkItemKind
	(WebhookProcessingStatus)(0),                        // 2: kodex.providers.v1.WebhookProcessingStatus
	(WorkItemWatermarkStatus)(0),                        // 3: kodex.providers.v1.WorkItemWatermarkStatus
	(WorkItemDriftStatus)(0),                            // 4: kodex.providers.v1.WorkItemDriftStatus
	(CommentKind)(0),                                    // 5: kodex.providers.v1.CommentKind
	(ReviewState)(0),                                    // 6: kodex.providers.v1.ReviewState
	(RelationshipConfidence)(0),                         // 7: kodex.providers.v1.RelationshipConfidence
	(RelationshipSource)(0),                             // 8: kodex.providers.v1.RelationshipSource
	(SyncCursorScopeType)(0),                            // 9: kodex.providers.v1.SyncCursorScopeType
	(SyncArtifactKind)(0),                               // 10: kodex.providers.v1.SyncArtifactKind
	(SyncCursorPriority)(0),                             // 11: kodex.providers.v1.SyncCursorPriority
	(ProviderAccountRuntimeStatus)(0),                   // 12: kodex.providers.v1.ProviderAccountRuntimeStatus
	(ProviderOperationType)(0),                          // 13: kodex.providers.v1.ProviderOperationType
	(ProviderOperationStatus)(0),                        // 14: kodex.providers.v1.ProviderOperationStatus
	(RepositoryOwnerKind)(0),                            // 15: kodex.providers.v1.RepositoryOwnerKind
	(RepositoryVisibility)(0),                           // 16: kodex.providers.v1.RepositoryVisibility
	(RepositoryAdoptionScanStatus)(0),                   // 17: kodex.providers.v1.RepositoryAdoptionScanStatus
	(ProviderOwnedDataStatus)(0),                        // 18: kodex.providers.v1.ProviderOwnedDataStatus
	(RepositoryMergeSignalKind)(0),                      // 19: kodex.providers.v1.RepositoryMergeSignalKind
	(RepositoryMergeSignalStatus)(0),                    // 20: kodex.providers.v1.RepositoryMergeSignalStatus
	(RepositoryChangeSignalKind)(0),                     // 21: kodex.providers.v1.RepositoryChangeSignalKind
	(RepositoryChangeSignalStatus)(0),                   // 22: kodex.providers.v1.RepositoryChangeSignalStatus
	(RepositoryChangePathSummaryStatus)(0),              // 23: kodex.providers.v1.RepositoryChangePathSummaryStatus
	(RepositoryChangePathCategory)(0),                   // 24: kodex.providers.v1.RepositoryChangePathCategory
	(RepositoryAdoptionMarkerKind)(0),                   // 25: kodex.providers.v1.RepositoryAdoptionMarkerKind
	(ReviewSignalKind)(0),                               // 26: kodex.providers.v1.ReviewSignalKind
	(*CommandMeta)(nil),                                 // 27: kodex.providers.v1.CommandMeta
	(*QueryMeta)(nil),                                   // 28: kodex.providers.v1.QueryMeta
	(*RequestContext)(nil),                              // 29: kodex.providers.v1.RequestContext
	(*ProviderOperationPolicyContext)(nil),              // 30: kodex.providers.v1.ProviderOperationPolicyContext
	(*ApprovalGateReference)(nil),                       // 31: kodex.providers.v1.ApprovalGateReference
	(*Actor)(nil),                                       // 32: kodex.providers.v1.Actor
	(*PageRequest)(nil),                                 // 33: kodex.providers.v1.PageRequest
	(*PageResponse)(nil),                                // 34: kodex.providers.v1.PageResponse
	(*StringListPatch)(nil),                             // 35: kodex.providers.v1.StringListPatch
	(*ReviewInlineComment)(nil),                         // 36: kodex.providers.v1.ReviewInlineComment
	(*ProviderTarget)(nil),                              // 37: kodex.providers.v1.ProviderTarget
	(*WebhookEvent)(nil),                                // 38: kodex.providers.v1.WebhookEvent
	(*ProviderEvent)(nil),                               // 39: kodex.providers.v1.ProviderEvent
	(*WorkItemProjection)(nil),                          // 40: kodex.providers.v1.WorkItemProjection
	(*CommentProjection)(nil),                           // 41: kodex.providers.v1.CommentProjection
	(*ProviderRelationship)(nil),                        // 42: kodex.providers.v1.ProviderRelationship
	(*SyncCursor)(nil),                                  // 43: kodex.providers.v1.SyncCursor
	(*ProviderAccountRuntimeState)(nil),                 // 44: kodex.providers.v1.ProviderAccountRuntimeState
	(*ProviderLimitSnapshot)(nil),                       // 45: kodex.providers.v1.ProviderLimitSnapshot
	(*ProviderOperation)(nil),                           // 46: kodex.providers.v1.ProviderOperation
	(*IngestWebhookEventRequest)(nil),                   // 47: kodex.providers.v1.IngestWebhookEventRequest
	(*WebhookEventResponse)(nil),                        // 48: kodex.providers.v1.WebhookEventResponse
	(*GetWebhookEventRequest)(nil),                      // 49: kodex.providers.v1.GetWebhookEventRequest
	(*ListWebhookEventsRequest)(nil),                    // 50: kodex.providers.v1.ListWebhookEventsRequest
	(*ListWebhookEventsResponse)(nil),                   // 51: kodex.providers.v1.ListWebhookEventsResponse
	(*RetryWebhookEventProcessingRequest)(nil),          // 52: kodex.providers.v1.RetryWebhookEventProcessingRequest
	(*CleanupExpiredWebhookPayloadsRequest)(nil),        // 53: kodex.providers.v1.CleanupExpiredWebhookPayloadsRequest
	(*CleanupExpiredWebhookPayloadsResponse)(nil),       // 54: kodex.providers.v1.CleanupExpiredWebhookPayloadsResponse
	(*GetWorkItemProjectionRequest)(nil),                // 55: kodex.providers.v1.GetWorkItemProjectionRequest
	(*FindWorkItemByProviderRefRequest)(nil),            // 56: kodex.providers.v1.FindWorkItemByProviderRefRequest
	(*WorkItemProjectionResponse)(nil),                  // 57: kodex.providers.v1.WorkItemProjectionResponse
	(*ListWorkItemProjectionsRequest)(nil),              // 58: kodex.providers.v1.ListWorkItemProjectionsRequest
	(*ListWorkItemProjectionsResponse)(nil),             // 59: kodex.providers.v1.ListWorkItemProjectionsResponse
	(*ListCommentsRequest)(nil),                         // 60: kodex.providers.v1.ListCommentsRequest
	(*ListCommentsResponse)(nil),                        // 61: kodex.providers.v1.ListCommentsResponse
	(*ListRelationshipsRequest)(nil),                    // 62: kodex.providers.v1.ListRelationshipsRequest
	(*ListRelationshipsResponse)(nil),                   // 63: kodex.providers.v1.ListRelationshipsResponse
	(*RegisterProviderArtifactSignalRequest)(nil),       // 64: kodex.providers.v1.RegisterProviderArtifactSignalRequest
	(*ProviderArtifactSignalResponse)(nil),              // 65: kodex.providers.v1.ProviderArtifactSignalResponse
	(*EnqueueReconciliationRequest)(nil),                // 66: kodex.providers.v1.EnqueueReconciliationRequest
	(*ReconciliationRequestResponse)(nil),               // 67: kodex.providers.v1.ReconciliationRequestResponse
	(*RunReconciliationBatchRequest)(nil),               // 68: kodex.providers.v1.RunReconciliationBatchRequest
	(*RunReconciliationBatchResponse)(nil),              // 69: kodex.providers.v1.RunReconciliationBatchResponse
	(*GetSyncCursorRequest)(nil),                        // 70: kodex.providers.v1.GetSyncCursorRequest
	(*SyncCursorResponse)(nil),                          // 71: kodex.providers.v1.SyncCursorResponse
	(*ListSyncCursorsRequest)(nil),                      // 72: kodex.providers.v1.ListSyncCursorsRequest
	(*ListSyncCursorsResponse)(nil),                     // 73: kodex.providers.v1.ListSyncCursorsResponse
	(*CreateIssueRequest)(nil),                          // 74: kodex.providers.v1.CreateIssueRequest
	(*UpdateIssueRequest)(nil),                          // 75: kodex.providers.v1.UpdateIssueRequest
	(*CreateCommentRequest)(nil),                        // 76: kodex.providers.v1.CreateCommentRequest
	(*UpdateCommentRequest)(nil),                        // 77: kodex.providers.v1.UpdateCommentRequest
	(*CreatePullRequestRequest)(nil),                    // 78: kodex.providers.v1.CreatePullRequestRequest
	(*CreateRepositoryRequest)(nil),                     // 79: kodex.providers.v1.CreateRepositoryRequest
	(*BootstrapFile)(nil),                               // 80: kodex.providers.v1.BootstrapFile
	(*AdoptionFile)(nil),                                // 81: kodex.providers.v1.AdoptionFile
	(*CreateBootstrapPullRequestRequest)(nil),           // 82: kodex.providers.v1.CreateBootstrapPullRequestRequest
	(*CreateAdoptionPullRequestRequest)(nil),            // 83: kodex.providers.v1.CreateAdoptionPullRequestRequest
	(*RepositoryAdoptionScanOptions)(nil),               // 84: kodex.providers.v1.RepositoryAdoptionScanOptions
	(*ScanRepositoryForAdoptionRequest)(nil),            // 85: kodex.providers.v1.ScanRepositoryForAdoptionRequest
	(*RepositoryAdoptionScanMarker)(nil),                // 86: kodex.providers.v1.RepositoryAdoptionScanMarker
	(*RepositoryAdoptionScanSnapshot)(nil),              // 87: kodex.providers.v1.RepositoryAdoptionScanSnapshot
	(*RepositoryMergeSignal)(nil),                       // 88: kodex.providers.v1.RepositoryMergeSignal
	(*GetRepositoryMergeSignalRequest)(nil),             // 89: kodex.providers.v1.GetRepositoryMergeSignalRequest
	(*RepositoryMergeSignalResponse)(nil),               // 90: kodex.providers.v1.RepositoryMergeSignalResponse
	(*ListRepositoryMergeSignalsRequest)(nil),           // 91: kodex.providers.v1.ListRepositoryMergeSignalsRequest
	(*ListRepositoryMergeSignalsResponse)(nil),          // 92: kodex.providers.v1.ListRepositoryMergeSignalsResponse
	(*RepositoryChangePathCategoryCount)(nil),           // 93: kodex.providers.v1.RepositoryChangePathCategoryCount
	(*RepositoryChangeSignal)(nil),                      // 94: kodex.providers.v1.RepositoryChangeSignal
	(*GetRepositoryChangeSignalRequest)(nil),            // 95: kodex.providers.v1.GetRepositoryChangeSignalRequest
	(*RepositoryChangeSignalResponse)(nil),              // 96: kodex.providers.v1.RepositoryChangeSignalResponse
	(*ListRepositoryChangeSignalsRequest)(nil),          // 97: kodex.providers.v1.ListRepositoryChangeSignalsRequest
	(*ListRepositoryChangeSignalsResponse)(nil),         // 98: kodex.providers.v1.ListRepositoryChangeSignalsResponse
	(*GetRepositoryAdoptionScanSnapshotRequest)(nil),    // 99: kodex.providers.v1.GetRepositoryAdoptionScanSnapshotRequest
	(*RepositoryAdoptionScanSnapshotResponse)(nil),      // 100: kodex.providers.v1.RepositoryAdoptionScanSnapshotResponse
	(*ListRepositoryAdoptionScanSnapshotsRequest)(nil),  // 101: kodex.providers.v1.ListRepositoryAdoptionScanSnapshotsRequest
	(*ListRepositoryAdoptionScanSnapshotsResponse)(nil), // 102: kodex.providers.v1.ListRepositoryAdoptionScanSnapshotsResponse
	(*UpdatePullRequestRequest)(nil),                    // 103: kodex.providers.v1.UpdatePullRequestRequest
	(*CreateReviewSignalRequest)(nil),                   // 104: kodex.providers.v1.CreateReviewSignalRequest
	(*UpdateRelationshipRequest)(nil),                   // 105: kodex.providers.v1.UpdateRelationshipRequest
	(*ProviderOperationCommandResult)(nil),              // 106: kodex.providers.v1.ProviderOperationCommandResult
	(*ProviderOperationResponse)(nil),                   // 107: kodex.providers.v1.ProviderOperationResponse
	(*GetProviderAccountRuntimeStateRequest)(nil),       // 108: kodex.providers.v1.GetProviderAccountRuntimeStateRequest
	(*ProviderAccountRuntimeStateResponse)(nil),         // 109: kodex.providers.v1.ProviderAccountRuntimeStateResponse
	(*ListProviderAccountRuntimeStatesRequest)(nil),     // 110: kodex.providers.v1.ListProviderAccountRuntimeStatesRequest
	(*ListProviderAccountRuntimeStatesResponse)(nil),    // 111: kodex.providers.v1.ListProviderAccountRuntimeStatesResponse
	(*RecordProviderLimitSnapshotRequest)(nil),          // 112: kodex.providers.v1.RecordProviderLimitSnapshotRequest
	(*ProviderLimitSnapshotResponse)(nil),               // 113: kodex.providers.v1.ProviderLimitSnapshotResponse
	(*ListProviderLimitSnapshotsRequest)(nil),           // 114: kodex.providers.v1.ListProviderLimitSnapshotsRequest
	(*ListProviderLimitSnapshotsResponse)(nil),          // 115: kodex.providers.v1.ListProviderLimitSnapshotsResponse
	(*ListProviderOperationsRequest)(nil),               // 116: kodex.providers.v1.ListProviderOperationsRequest
	(*ListProviderOperationsResponse)(nil),              // 117: kodex.providers.v1.ListProviderOperationsResponse
}
var file_kodex_providers_v1_provider_hub_proto_depIdxs = []int32{
	32,  // 0: kodex.providers.v1.CommandMeta.actor:type_name -> kodex.providers.v1.Actor
	29,  // 1: kodex.providers.v1.CommandMeta.request_context:type_name -> kodex.providers.v1.RequestContext
	30,  // 2: kodex.providers.v1.CommandMeta.operation_policy_context:type_name -> kodex.providers.v1.ProviderOperationPolicyContext
	31,  // 3: kodex.providers.v1.CommandMeta.approval_gate_ref:type_name -> kodex.providers.v1.ApprovalGateReference
	32,  // 4: kodex.providers.v1.QueryMeta.actor:type_name -> kodex.providers.v1.Actor
	29,  // 5: kodex.providers.v1.QueryMeta.request_context:type_name -> kodex.providers.v1.RequestContext
	13,  // 6: kodex.providers.v1.ProviderOperationPolicyContext.operation_type:type_name -> kodex.providers.v1.ProviderOperationType
	0,   // 7: kodex.providers.v1.ProviderOperationPolicyContext.risk_level:type_name -> kodex.providers.v1.ProviderOperationRiskLevel
	1,   // 8: kodex.providers.v1.ProviderTarget.work_item_kind:type_name -> kodex.providers.v1.WorkItemKind
	2,   // 9: kodex.providers.v1.WebhookEvent.processing_status:type_name -> kodex.providers.v1.WebhookProcessingStatus
	1,   // 10: kodex.providers.v1.WorkItemProjection.kind:type_name -> kodex.providers.v1.WorkItemKind
	3,   // 11: kodex.providers.v1.WorkItemProjection.watermark_status:type_name -> kodex.providers.v1.WorkItemWatermarkStatus
	4,   // 12: kodex.providers.v1.WorkItemProjection.drift_status:type_name -> kodex.providers.v1.WorkItemDriftStatus
	5,   // 13: kodex.providers.v1.CommentProjection.kind:type_name -> kodex.providers.v1.CommentKind
	6,   // 14: kodex.providers.v1.CommentProjection.review_state:type_name -> kodex.providers.v1.ReviewState
	8,   // 15: kodex.providers.v1.ProviderRelationship.source:type_name -> kodex.providers.v1.RelationshipSource
	7,   // 16: kodex.providers.v1.ProviderRelationship.confidence:type_name -> kodex.providers.v1.RelationshipConfidence
	9,   // 17: kodex.providers.v1.SyncCursor.scope_type:type_name -> kodex.providers.v1.SyncCursorScopeType
	10,  // 18: kodex.providers.v1.SyncCursor.artifact_kind:type_name -> kodex.providers.v1.SyncArtifactKind
	11,  // 19: kodex.providers.v1.SyncCursor.priority:type_name -> kodex.providers.v1.SyncCursorPriority
	12,  // 20: kodex.providers.v1.ProviderAccountRuntimeState.status:type_name -> kodex.providers.v1.ProviderAccountRuntimeStatus
	13,  // 21: kodex.providers.v1.ProviderOperation.operation_type:type_name -> kodex.providers.v1.ProviderOperationType
	14,  // 22: kodex.providers.v1.ProviderOperation.status:type_name -> kodex.providers.v1.ProviderOperationStatus
	30,  // 23: kodex.providers.v1.ProviderOperation.operation_policy_context:type_name -> kodex.providers.v1.ProviderOperationPolicyContext
	31,  // 24: kodex.providers.v1.ProviderOperation.approval_gate_ref:type_name -> kodex.providers.v1.ApprovalGateReference
	27,  // 25: kodex.providers.v1.IngestWebhookEventRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	38,  // 26: kodex.providers.v1.WebhookEventResponse.webhook_event:type_name -> kodex.providers.v1.WebhookEvent
	28,  // 27: kodex.providers.v1.GetWebhookEventRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	2,   // 28: kodex.providers.v1.ListWebhookEventsRequest.processing_statuses:type_name -> kodex.providers.v1.WebhookProcessingStatus
	33,  // 29: kodex.providers.v1.ListWebhookEventsRequest.page:type_name -> kodex.providers.v1.PageRequest
	28,  // 30: kodex.providers.v1.ListWebhookEventsRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	38,  // 31: kodex.providers.v1.ListWebhookEventsResponse.webhook_events:type_name -> kodex.providers.v1.WebhookEvent
	34,  // 32: kodex.providers.v1.ListWebhookEventsResponse.page:type_name -> kodex.providers.v1.PageResponse
	27,  // 33: kodex.providers.v1.RetryWebhookEventProcessingRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	27,  // 34: kodex.providers.v1.CleanupExpiredWebhookPayloadsRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	38,  // 35: kodex.providers.v1.CleanupExpiredWebhookPayloadsResponse.webhook_events:type_name -> kodex.providers.v1.WebhookEvent
	28,  // 36: kodex.providers.v1.GetWorkItemProjectionRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	37,  // 37: kodex.providers.v1.FindWorkItemByProviderRefRequest.target:type_name -> kodex.providers.v1.ProviderTarget
	28,  // 38: kodex.providers.v1.FindWorkItemByProviderRefRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	40,  // 39: kodex.providers.v1.WorkItemProjectionResponse.work_item_projection:type_name -> kodex.providers.v1.WorkItemProjection
	1,   // 40: kodex.providers.v1.ListWorkItemProjectionsRequest.kinds:type_name -> kodex.providers.v1.WorkItemKind
	4,   // 41: kodex.providers.v1.ListWorkItemProjectionsRequest.drift_statuses:type_name -> kodex.providers.v1.WorkItemDriftStatus
	33,  // 42: kodex.providers.v1.ListWorkItemProjectionsRequest.page:type_name -> kodex.providers.v1.PageRequest
	28,  // 43: kodex.providers.v1.ListWorkItemProjectionsRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	40,  // 44: kodex.providers.v1.ListWorkItemProjectionsResponse.work_item_projections:type_name -> kodex.providers.v1.WorkItemProjection
	34,  // 45: kodex.providers.v1.ListWorkItemProjectionsResponse.page:type_name -> kodex.providers.v1.PageResponse
	5,   // 46: kodex.providers.v1.ListCommentsRequest.kinds:type_name -> kodex.providers.v1.CommentKind
	33,  // 47: kodex.providers.v1.ListCommentsRequest.page:type_name -> kodex.providers.v1.PageRequest
	28,  // 48: kodex.providers.v1.ListCommentsRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	41,  // 49: kodex.providers.v1.ListCommentsResponse.comments:type_name -> kodex.providers.v1.CommentProjection
	34,  // 50: kodex.providers.v1.ListCommentsResponse.page:type_name -> kodex.providers.v1.PageResponse
	8,   // 51: kodex.providers.v1.ListRelationshipsRequest.sources:type_name -> kodex.providers.v1.RelationshipSource
	7,   // 52: kodex.providers.v1.ListRelationshipsRequest.confidence_levels:type_name -> kodex.providers.v1.RelationshipConfidence
	33,  // 53: kodex.providers.v1.ListRelationshipsRequest.page:type_name -> kodex.providers.v1.PageRequest
	28,  // 54: kodex.providers.v1.ListRelationshipsRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	42,  // 55: kodex.providers.v1.ListRelationshipsResponse.relationships:type_name -> kodex.providers.v1.ProviderRelationship
	34,  // 56: kodex.providers.v1.ListRelationshipsResponse.page:type_name -> kodex.providers.v1.PageResponse
	37,  // 57: kodex.providers.v1.RegisterProviderArtifactSignalRequest.target:type_name -> kodex.providers.v1.ProviderTarget
	27,  // 58: kodex.providers.v1.RegisterProviderArtifactSignalRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	37,  // 59: kodex.providers.v1.ProviderArtifactSignalResponse.target:type_name -> kodex.providers.v1.ProviderTarget
	9,   // 60: kodex.providers.v1.EnqueueReconciliationRequest.scope_type:type_name -> kodex.providers.v1.SyncCursorScopeType
	10,  // 61: kodex.providers.v1.EnqueueReconciliationRequest.artifact_kinds:type_name -> kodex.providers.v1.SyncArtifactKind
	11,  // 62: kodex.providers.v1.EnqueueReconciliationRequest.priority:type_name -> kodex.providers.v1.SyncCursorPriority
	27,  // 63: kodex.providers.v1.EnqueueReconciliationRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	43,  // 64: kodex.providers.v1.ReconciliationRequestResponse.sync_cursors:type_name -> kodex.providers.v1.SyncCursor
	27,  // 65: kodex.providers.v1.RunReconciliationBatchRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	43,  // 66: kodex.providers.v1.RunReconciliationBatchResponse.sync_cursor:type_name -> kodex.providers.v1.SyncCursor
	28,  // 67: kodex.providers.v1.GetSyncCursorRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	43,  // 68: kodex.providers.v1.SyncCursorResponse.sync_cursor:type_name -> kodex.providers.v1.SyncCursor
	9,   // 69: kodex.providers.v1.ListSyncCursorsRequest.scope_type:type_name -> kodex.providers.v1.SyncCursorScopeType
	10,  // 70: kodex.providers.v1.ListSyncCursorsRequest.artifact_kinds:type_name -> kodex.providers.v1.SyncArtifactKind
	11,  // 71: kodex.providers.v1.ListSyncCursorsRequest.priorities:type_name -> kodex.providers.v1.SyncCursorPriority
	33,  // 72: kodex.providers.v1.ListSyncCursorsRequest.page:type_name -> kodex.providers.v1.PageRequest
	28,  // 73: kodex.providers.v1.ListSyncCursorsRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	43,  // 74: kodex.providers.v1.ListSyncCursorsResponse.sync_cursors:type_name -> kodex.providers.v1.SyncCursor
	34,  // 75: kodex.providers.v1.ListSyncCursorsResponse.page:type_name -> kodex.providers.v1.PageResponse
	27,  // 76: kodex.providers.v1.CreateIssueRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	37,  // 77: kodex.providers.v1.CreateIssueRequest.repository_target:type_name -> kodex.providers.v1.ProviderTarget
	37,  // 78: kodex.providers.v1.UpdateIssueRequest.target:type_name -> kodex.providers.v1.ProviderTarget
	35,  // 79: kodex.providers.v1.UpdateIssueRequest.labels:type_name -> kodex.providers.v1.StringListPatch
	35,  // 80: kodex.providers.v1.UpdateIssueRequest.assignee_provider_logins:type_name -> kodex.providers.v1.StringListPatch
	27,  // 81: kodex.providers.v1.UpdateIssueRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	37,  // 82: kodex.providers.v1.CreateCommentRequest.target:type_name -> kodex.providers.v1.ProviderTarget
	27,  // 83: kodex.providers.v1.CreateCommentRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	37,  // 84: kodex.providers.v1.UpdateCommentRequest.target:type_name -> kodex.providers.v1.ProviderTarget
	27,  // 85: kodex.providers.v1.UpdateCommentRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	27,  // 86: kodex.providers.v1.CreatePullRequestRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	37,  // 87: kodex.providers.v1.CreatePullRequestRequest.repository_target:type_name -> kodex.providers.v1.ProviderTarget
	15,  // 88: kodex.providers.v1.CreateRepositoryRequest.owner_kind:type_name -> kodex.providers.v1.RepositoryOwnerKind
	16,  // 89: kodex.providers.v1.CreateRepositoryRequest.visibility:type_name -> kodex.providers.v1.RepositoryVisibility
	27,  // 90: kodex.providers.v1.CreateRepositoryRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	37,  // 91: kodex.providers.v1.CreateBootstrapPullRequestRequest.repository_target:type_name -> kodex.providers.v1.ProviderTarget
	80,  // 92: kodex.providers.v1.CreateBootstrapPullRequestRequest.files:type_name -> kodex.providers.v1.BootstrapFile
	27,  // 93: kodex.providers.v1.CreateBootstrapPullRequestRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	37,  // 94: kodex.providers.v1.CreateAdoptionPullRequestRequest.repository_target:type_name -> kodex.providers.v1.ProviderTarget
	81,  // 95: kodex.providers.v1.CreateAdoptionPullRequestRequest.files:type_name -> kodex.providers.v1.AdoptionFile
	27,  // 96: kodex.providers.v1.CreateAdoptionPullRequestRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	37,  // 97: kodex.providers.v1.ScanRepositoryForAdoptionRequest.repository_target:type_name -> kodex.providers.v1.ProviderTarget
	84,  // 98: kodex.providers.v1.ScanRepositoryForAdoptionRequest.options:type_name -> kodex.providers.v1.RepositoryAdoptionScanOptions
	27,  // 99: kodex.providers.v1.ScanRepositoryForAdoptionRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	25,  // 100: kodex.providers.v1.RepositoryAdoptionScanMarker.kind:type_name -> kodex.providers.v1.RepositoryAdoptionMarkerKind
	37,  // 101: kodex.providers.v1.RepositoryAdoptionScanSnapshot.repository_target:type_name -> kodex.providers.v1.ProviderTarget
	17,  // 102: kodex.providers.v1.RepositoryAdoptionScanSnapshot.status:type_name -> kodex.providers.v1.RepositoryAdoptionScanStatus
	86,  // 103: kodex.providers.v1.RepositoryAdoptionScanSnapshot.markers:type_name -> kodex.providers.v1.RepositoryAdoptionScanMarker
	19,  // 104: kodex.providers.v1.RepositoryMergeSignal.kind:type_name -> kodex.providers.v1.RepositoryMergeSignalKind
	20,  // 105: kodex.providers.v1.RepositoryMergeSignal.status:type_name -> kodex.providers.v1.RepositoryMergeSignalStatus
	28,  // 106: kodex.providers.v1.GetRepositoryMergeSignalRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	18,  // 107: kodex.providers.v1.RepositoryMergeSignalResponse.read_status:type_name -> kodex.providers.v1.ProviderOwnedDataStatus
	88,  // 108: kodex.providers.v1.RepositoryMergeSignalResponse.merge_signal:type_name -> kodex.providers.v1.RepositoryMergeSignal
	19,  // 109: kodex.providers.v1.ListRepositoryMergeSignalsRequest.kinds:type_name -> kodex.providers.v1.RepositoryMergeSignalKind
	20,  // 110: kodex.providers.v1.ListRepositoryMergeSignalsRequest.statuses:type_name -> kodex.providers.v1.RepositoryMergeSignalStatus
	33,  // 111: kodex.providers.v1.ListRepositoryMergeSignalsRequest.page:type_name -> kodex.providers.v1.PageRequest
	28,  // 112: kodex.providers.v1.ListRepositoryMergeSignalsRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	88,  // 113: kodex.providers.v1.ListRepositoryMergeSignalsResponse.merge_signals:type_name -> kodex.providers.v1.RepositoryMergeSignal
	34,  // 114: kodex.providers.v1.ListRepositoryMergeSignalsResponse.page:type_name -> kodex.providers.v1.PageResponse
	24,  // 115: kodex.providers.v1.RepositoryChangePathCategoryCount.category:type_name -> kodex.providers.v1.RepositoryChangePathCategory
	21,  // 116: kodex.providers.v1.RepositoryChangeSignal.kind:type_name -> kodex.providers.v1.RepositoryChangeSignalKind
	23,  // 117: kodex.providers.v1.RepositoryChangeSignal.path_summary_status:type_name -> kodex.providers.v1.RepositoryChangePathSummaryStatus
	93,  // 118: kodex.providers.v1.RepositoryChangeSignal.path_categories:type_name -> kodex.providers.v1.RepositoryChangePathCategoryCount
	22,  // 119: kodex.providers.v1.RepositoryChangeSignal.status:type_name -> kodex.providers.v1.RepositoryChangeSignalStatus
	28,  // 120: kodex.providers.v1.GetRepositoryChangeSignalRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	18,  // 121: kodex.providers.v1.RepositoryChangeSignalResponse.read_status:type_name -> kodex.providers.v1.ProviderOwnedDataStatus
	94,  // 122: kodex.providers.v1.RepositoryChangeSignalResponse.change_signal:type_name -> kodex.providers.v1.RepositoryChangeSignal
	21,  // 123: kodex.providers.v1.ListRepositoryChangeSignalsRequest.kinds:type_name -> kodex.providers.v1.RepositoryChangeSignalKind
	22,  // 124: kodex.providers.v1.ListRepositoryChangeSignalsRequest.statuses:type_name -> kodex.providers.v1.RepositoryChangeSignalStatus
	33,  // 125: kodex.providers.v1.ListRepositoryChangeSignalsRequest.page:type_name -> kodex.providers.v1.PageRequest
	28,  // 126: kodex.providers.v1.ListRepositoryChangeSignalsRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	94,  // 127: kodex.providers.v1.ListRepositoryChangeSignalsResponse.change_signals:type_name -> kodex.providers.v1.RepositoryChangeSignal
	34,  // 128: kodex.providers.v1.ListRepositoryChangeSignalsResponse.page:type_name -> kodex.providers.v1.PageResponse
	28,  // 129: kodex.providers.v1.GetRepositoryAdoptionScanSnapshotRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	18,  // 130: kodex.providers.v1.RepositoryAdoptionScanSnapshotResponse.read_status:type_name -> kodex.providers.v1.ProviderOwnedDataStatus
	87,  // 131: kodex.providers.v1.RepositoryAdoptionScanSnapshotResponse.adoption_scan_snapshot:type_name -> kodex.providers.v1.RepositoryAdoptionScanSnapshot
	17,  // 132: kodex.providers.v1.ListRepositoryAdoptionScanSnapshotsRequest.statuses:type_name -> kodex.providers.v1.RepositoryAdoptionScanStatus
	33,  // 133: kodex.providers.v1.ListRepositoryAdoptionScanSnapshotsRequest.page:type_name -> kodex.providers.v1.PageRequest
	28,  // 134: kodex.providers.v1.ListRepositoryAdoptionScanSnapshotsRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	87,  // 135: kodex.providers.v1.ListRepositoryAdoptionScanSnapshotsResponse.adoption_scan_snapshots:type_name -> kodex.providers.v1.RepositoryAdoptionScanSnapshot
	34,  // 136: kodex.providers.v1.ListRepositoryAdoptionScanSnapshotsResponse.page:type_name -> kodex.providers.v1.PageResponse
	37,  // 137: kodex.providers.v1.UpdatePullRequestRequest.target:type_name -> kodex.providers.v1.ProviderTarget
	35,  // 138: kodex.providers.v1.UpdatePullRequestRequest.labels:type_name -> kodex.providers.v1.StringListPatch
	35,  // 139: kodex.providers.v1.UpdatePullRequestRequest.assignee_provider_logins:type_name -> kodex.providers.v1.StringListPatch
	27,  // 140: kodex.providers.v1.UpdatePullRequestRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	37,  // 141: kodex.providers.v1.CreateReviewSignalRequest.target:type_name -> kodex.providers.v1.ProviderTarget
	26,  // 142: kodex.providers.v1.CreateReviewSignalRequest.kind:type_name -> kodex.providers.v1.ReviewSignalKind
	36,  // 143: kodex.providers.v1.CreateReviewSignalRequest.inline_comments:type_name -> kodex.providers.v1.ReviewInlineComment
	27,  // 144: kodex.providers.v1.CreateReviewSignalRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	37,  // 145: kodex.providers.v1.UpdateRelationshipRequest.source:type_name -> kodex.providers.v1.ProviderTarget
	37,  // 146: kodex.providers.v1.UpdateRelationshipRequest.target:type_name -> kodex.providers.v1.ProviderTarget
	8,   // 147: kodex.providers.v1.UpdateRelationshipRequest.source_kind:type_name -> kodex.providers.v1.RelationshipSource
	7,   // 148: kodex.providers.v1.UpdateRelationshipRequest.confidence:type_name -> kodex.providers.v1.RelationshipConfidence
	27,  // 149: kodex.providers.v1.UpdateRelationshipRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	37,  // 150: kodex.providers.v1.ProviderOperationCommandResult.target:type_name -> kodex.providers.v1.ProviderTarget
	46,  // 151: kodex.providers.v1.ProviderOperationResponse.provider_operation:type_name -> kodex.providers.v1.ProviderOperation
	40,  // 152: kodex.providers.v1.ProviderOperationResponse.work_item_projection:type_name -> kodex.providers.v1.WorkItemProjection
	41,  // 153: kodex.providers.v1.ProviderOperationResponse.comment_projection:type_name -> kodex.providers.v1.CommentProjection
	42,  // 154: kodex.providers.v1.ProviderOperationResponse.relationship:type_name -> kodex.providers.v1.ProviderRelationship
	106, // 155: kodex.providers.v1.ProviderOperationResponse.result:type_name -> kodex.providers.v1.ProviderOperationCommandResult
	87,  // 156: kodex.providers.v1.ProviderOperationResponse.adoption_scan_snapshot:type_name -> kodex.providers.v1.RepositoryAdoptionScanSnapshot
	28,  // 157: kodex.providers.v1.GetProviderAccountRuntimeStateRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	44,  // 158: kodex.providers.v1.ProviderAccountRuntimeStateResponse.runtime_state:type_name -> kodex.providers.v1.ProviderAccountRuntimeState
	12,  // 159: kodex.providers.v1.ListProviderAccountRuntimeStatesRequest.statuses:type_name -> kodex.providers.v1.ProviderAccountRuntimeStatus
	33,  // 160: kodex.providers.v1.ListProviderAccountRuntimeStatesRequest.page:type_name -> kodex.providers.v1.PageRequest
	28,  // 161: kodex.providers.v1.ListProviderAccountRuntimeStatesRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	44,  // 162: kodex.providers.v1.ListProviderAccountRuntimeStatesResponse.runtime_states:type_name -> kodex.providers.v1.ProviderAccountRuntimeState
	34,  // 163: kodex.providers.v1.ListProviderAccountRuntimeStatesResponse.page:type_name -> kodex.providers.v1.PageResponse
	27,  // 164: kodex.providers.v1.RecordProviderLimitSnapshotRequest.meta:type_name -> kodex.providers.v1.CommandMeta
	45,  // 165: kodex.providers.v1.ProviderLimitSnapshotResponse.limit_snapshot:type_name -> kodex.providers.v1.ProviderLimitSnapshot
	33,  // 166: kodex.providers.v1.ListProviderLimitSnapshotsRequest.page:type_name -> kodex.providers.v1.PageRequest
	28,  // 167: kodex.providers.v1.ListProviderLimitSnapshotsRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	45,  // 168: kodex.providers.v1.ListProviderLimitSnapshotsResponse.limit_snapshots:type_name -> kodex.providers.v1.ProviderLimitSnapshot
	34,  // 169: kodex.providers.v1.ListProviderLimitSnapshotsResponse.page:type_name -> kodex.providers.v1.PageResponse
	13,  // 170: kodex.providers.v1.ListProviderOperationsRequest.operation_types:type_name -> kodex.providers.v1.ProviderOperationType
	14,  // 171: kodex.providers.v1.ListProviderOperationsRequest.statuses:type_name -> kodex.providers.v1.ProviderOperationStatus
	33,  // 172: kodex.providers.v1.ListProviderOperationsRequest.page:type_name -> kodex.providers.v1.PageRequest
	28,  // 173: kodex.providers.v1.ListProviderOperationsRequest.meta:type_name -> kodex.providers.v1.QueryMeta
	46,  // 174: kodex.providers.v1.ListProviderOperationsResponse.provider_operations:type_name -> kodex.providers.v1.ProviderOperation
	34,  // 175: kodex.providers.v1.ListProviderOperationsResponse.page:type_name -> kodex.providers.v1.PageResponse
	47,  // 176: kodex.providers.v1.ProviderHubService.IngestWebhookEvent:input_type -> kodex.providers.v1.IngestWebhookEventRequest
	49,  // 177: kodex.providers.v1.ProviderHubService.GetWebhookEvent:input_type -> kodex.providers.v1.GetWebhookEventRequest
	50,  // 178: kodex.providers.v1.ProviderHubService.ListWebhookEvents:input_type -> kodex.providers.v1.ListWebhookEventsRequest
	52,  // 179: kodex.providers.v1.ProviderHubService.RetryWebhookEventProcessing:input_type -> kodex.providers.v1.RetryWebhookEventProcessingRequest
	53,  // 180: kodex.providers.v1.ProviderHubService.CleanupExpiredWebhookPayloads:input_type -> kodex.providers.v1.CleanupExpiredWebhookPayloadsRequest
	55,  // 181: kodex.providers.v1.ProviderHubService.GetWorkItemProjection:input_type -> kodex.providers.v1.GetWorkItemProjectionRequest
	56,  // 182: kodex.providers.v1.ProviderHubService.FindWorkItemByProviderRef:input_type -> kodex.providers.v1.FindWorkItemByProviderRefRequest
	58,  // 183: kodex.providers.v1.ProviderHubService.ListWorkItemProjections:input_type -> kodex.providers.v1.ListWorkItemProjectionsRequest
	60,  // 184: kodex.providers.v1.ProviderHubService.ListComments:input_type -> kodex.providers.v1.ListCommentsRequest
	62,  // 185: kodex.providers.v1.ProviderHubService.ListRelationships:input_type -> kodex.providers.v1.ListRelationshipsRequest
	89,  // 186: kodex.providers.v1.ProviderHubService.GetRepositoryMergeSignal:input_type -> kodex.providers.v1.GetRepositoryMergeSignalRequest
	91,  // 187: kodex.providers.v1.ProviderHubService.ListRepositoryMergeSignals:input_type -> kodex.providers.v1.ListRepositoryMergeSignalsRequest
	95,  // 188: kodex.providers.v1.ProviderHubService.GetRepositoryChangeSignal:input_type -> kodex.providers.v1.GetRepositoryChangeSignalRequest
	97,  // 189: kodex.providers.v1.ProviderHubService.ListRepositoryChangeSignals:input_type -> kodex.providers.v1.ListRepositoryChangeSignalsRequest
	99,  // 190: kodex.providers.v1.ProviderHubService.GetRepositoryAdoptionScanSnapshot:input_type -> kodex.providers.v1.GetRepositoryAdoptionScanSnapshotRequest
	101, // 191: kodex.providers.v1.ProviderHubService.ListRepositoryAdoptionScanSnapshots:input_type -> kodex.providers.v1.ListRepositoryAdoptionScanSnapshotsRequest
	64,  // 192: kodex.providers.v1.ProviderHubService.RegisterProviderArtifactSignal:input_type -> kodex.providers.v1.RegisterProviderArtifactSignalRequest
	66,  // 193: kodex.providers.v1.ProviderHubService.EnqueueReconciliation:input_type -> kodex.providers.v1.EnqueueReconciliationRequest
	68,  // 194: kodex.providers.v1.ProviderHubService.RunReconciliationBatch:input_type -> kodex.providers.v1.RunReconciliationBatchRequest
	70,  // 195: kodex.providers.v1.ProviderHubService.GetSyncCursor:input_type -> kodex.providers.v1.GetSyncCursorRequest
	72,  // 196: kodex.providers.v1.ProviderHubService.ListSyncCursors:input_type -> kodex.providers.v1.ListSyncCursorsRequest
	74,  // 197: kodex.providers.v1.ProviderHubService.CreateIssue:input_type -> kodex.providers.v1.CreateIssueRequest
	75,  // 198: kodex.providers.v1.ProviderHubService.UpdateIssue:input_type -> kodex.providers.v1.UpdateIssueRequest
	76,  // 199: kodex.providers.v1.ProviderHubService.CreateComment:input_type -> kodex.providers.v1.CreateCommentRequest
	77,  // 200: kodex.providers.v1.ProviderHubService.UpdateComment:input_type -> kodex.providers.v1.UpdateCommentRequest
	78,  // 201: kodex.providers.v1.ProviderHubService.CreatePullRequest:input_type -> kodex.providers.v1.CreatePullRequestRequest
	79,  // 202: kodex.providers.v1.ProviderHubService.CreateRepository:input_type -> kodex.providers.v1.CreateRepositoryRequest
	82,  // 203: kodex.providers.v1.ProviderHubService.CreateBootstrapPullRequest:input_type -> kodex.providers.v1.CreateBootstrapPullRequestRequest
	83,  // 204: kodex.providers.v1.ProviderHubService.CreateAdoptionPullRequest:input_type -> kodex.providers.v1.CreateAdoptionPullRequestRequest
	85,  // 205: kodex.providers.v1.ProviderHubService.ScanRepositoryForAdoption:input_type -> kodex.providers.v1.ScanRepositoryForAdoptionRequest
	103, // 206: kodex.providers.v1.ProviderHubService.UpdatePullRequest:input_type -> kodex.providers.v1.UpdatePullRequestRequest
	104, // 207: kodex.providers.v1.ProviderHubService.CreateReviewSignal:input_type -> kodex.providers.v1.CreateReviewSignalRequest
	105, // 208: kodex.providers.v1.ProviderHubService.UpdateRelationship:input_type -> kodex.providers.v1.UpdateRelationshipRequest
	108, // 209: kodex.providers.v1.ProviderHubService.GetProviderAccountRuntimeState:input_type -> kodex.providers.v1.GetProviderAccountRuntimeStateRequest
	110, // 210: kodex.providers.v1.ProviderHubService.ListProviderAccountRuntimeStates:input_type -> kodex.providers.v1.ListProviderAccountRuntimeStatesRequest
	112, // 211: kodex.providers.v1.ProviderHubService.RecordProviderLimitSnapshot:input_type -> kodex.providers.v1.RecordProviderLimitSnapshotRequest
	114, // 212: kodex.providers.v1.ProviderHubService.ListProviderLimitSnapshots:input_type -> kodex.providers.v1.ListProviderLimitSnapshotsRequest
	116, // 213: kodex.providers.v1.ProviderHubService.ListProviderOperations:input_type -> kodex.providers.v1.ListProviderOperationsRequest
	48,  // 214: kodex.providers.v1.ProviderHubService.IngestWebhookEvent:output_type -> kodex.providers.v1.WebhookEventResponse
	48,  // 215: kodex.providers.v1.ProviderHubService.GetWebhookEvent:output_type -> kodex.providers.v1.WebhookEventResponse
	51,  // 216: kodex.providers.v1.ProviderHubService.ListWebhookEvents:output_type -> kodex.providers.v1.ListWebhookEventsResponse
	48,  // 217: kodex.providers.v1.ProviderHubService.RetryWebhookEventProcessing:output_type -> kodex.providers.v1.WebhookEventResponse
	54,  // 218: kodex.providers.v1.ProviderHubService.CleanupExpiredWebhookPayloads:output_type -> kodex.providers.v1.CleanupExpiredWebhookPayloadsResponse
	57,  // 219: kodex.providers.v1.ProviderHubService.GetWorkItemProjection:output_type -> kodex.providers.v1.WorkItemProjectionResponse
	57,  // 220: kodex.providers.v1.ProviderHubService.FindWorkItemByProviderRef:output_type -> kodex.providers.v1.WorkItemProjectionResponse
	59,  // 221: kodex.providers.v1.ProviderHubService.ListWorkItemProjections:output_type -> kodex.providers.v1.ListWorkItemProjectionsResponse
	61,  // 222: kodex.providers.v1.ProviderHubService.ListComments:output_type -> kodex.providers.v1.ListCommentsResponse
	63,  // 223: kodex.providers.v1.ProviderHubService.ListRelationships:output_type -> kodex.providers.v1.ListRelationshipsResponse
	90,  // 224: kodex.providers.v1.ProviderHubService.GetRepositoryMergeSignal:output_type -> kodex.providers.v1.RepositoryMergeSignalResponse
	92,  // 225: kodex.providers.v1.ProviderHubService.ListRepositoryMergeSignals:output_type -> kodex.providers.v1.ListRepositoryMergeSignalsResponse
	96,  // 226: kodex.providers.v1.ProviderHubService.GetRepositoryChangeSignal:output_type -> kodex.providers.v1.RepositoryChangeSignalResponse
	98,  // 227: kodex.providers.v1.ProviderHubService.ListRepositoryChangeSignals:output_type -> kodex.providers.v1.ListRepositoryChangeSignalsResponse
	100, // 228: kodex.providers.v1.ProviderHubService.GetRepositoryAdoptionScanSnapshot:output_type -> kodex.providers.v1.RepositoryAdoptionScanSnapshotResponse
	102, // 229: kodex.providers.v1.ProviderHubService.ListRepositoryAdoptionScanSnapshots:output_type -> kodex.providers.v1.ListRepositoryAdoptionScanSnapshotsResponse
	65,  // 230: kodex.providers.v1.ProviderHubService.RegisterProviderArtifactSignal:output_type -> kodex.providers.v1.ProviderArtifactSignalResponse
	67,  // 231: kodex.providers.v1.ProviderHubService.EnqueueReconciliation:output_type -> kodex.providers.v1.ReconciliationRequestResponse
	69,  // 232: kodex.providers.v1.ProviderHubService.RunReconciliationBatch:output_type -> kodex.providers.v1.RunReconciliationBatchResponse
	71,  // 233: kodex.providers.v1.ProviderHubService.GetSyncCursor:output_type -> kodex.providers.v1.SyncCursorResponse
	73,  // 234: kodex.providers.v1.ProviderHubService.ListSyncCursors:output_type -> kodex.providers.v1.ListSyncCursorsResponse
	107, // 235: kodex.providers.v1.ProviderHubService.CreateIssue:output_type -> kodex.providers.v1.ProviderOperationResponse
	107, // 236: kodex.providers.v1.ProviderHubService.UpdateIssue:output_type -> kodex.providers.v1.ProviderOperationResponse
	107, // 237: kodex.providers.v1.ProviderHubService.CreateComment:output_type -> kodex.providers.v1.ProviderOperationResponse
	107, // 238: kodex.providers.v1.ProviderHubService.UpdateComment:output_type -> kodex.providers.v1.ProviderOperationResponse
	107, // 239: kodex.providers.v1.ProviderHubService.CreatePullRequest:output_type -> kodex.providers.v1.ProviderOperationResponse
	107, // 240: kodex.providers.v1.ProviderHubService.CreateRepository:output_type -> kodex.providers.v1.ProviderOperationResponse
	107, // 241: kodex.providers.v1.ProviderHubService.CreateBootstrapPullRequest:output_type -> kodex.providers.v1.ProviderOperationResponse
	107, // 242: kodex.providers.v1.ProviderHubService.CreateAdoptionPullRequest:output_type -> kodex.providers.v1.ProviderOperationResponse
	107, // 243: kodex.providers.v1.ProviderHubService.ScanRepositoryForAdoption:output_type -> kodex.providers.v1.ProviderOperationResponse
	107, // 244: kodex.providers.v1.ProviderHubService.UpdatePullRequest:output_type -> kodex.providers.v1.ProviderOperationResponse
	107, // 245: kodex.providers.v1.ProviderHubService.CreateReviewSignal:output_type -> kodex.providers.v1.ProviderOperationResponse
	107, // 246: kodex.providers.v1.ProviderHubService.UpdateRelationship:output_type -> kodex.providers.v1.ProviderOperationResponse
	109, // 247: kodex.providers.v1.ProviderHubService.GetProviderAccountRuntimeState:output_type -> kodex.providers.v1.ProviderAccountRuntimeStateResponse
	111, // 248: kodex.providers.v1.ProviderHubService.ListProviderAccountRuntimeStates:output_type -> kodex.providers.v1.ListProviderAccountRuntimeStatesResponse
	113, // 249: kodex.providers.v1.ProviderHubService.RecordProviderLimitSnapshot:output_type -> kodex.providers.v1.ProviderLimitSnapshotResponse
	115, // 250: kodex.providers.v1.ProviderHubService.ListProviderLimitSnapshots:output_type -> kodex.providers.v1.ListProviderLimitSnapshotsResponse
	117, // 251: kodex.providers.v1.ProviderHubService.ListProviderOperations:output_type -> kodex.providers.v1.ListProviderOperationsResponse
	214, // [214:252] is the sub-list for method output_type
	176, // [176:214] is the sub-list for method input_type
	176, // [176:176] is the sub-list for extension type_name
	176, // [176:176] is the sub-list for extension extendee
	0,   // [0:176] is the sub-list for field type_name
}

func init() { file_kodex_providers_v1_provider_hub_proto_init() }
func file_kodex_providers_v1_provider_hub_proto_init() {
	if File_kodex_providers_v1_provider_hub_proto != nil {
		return
	}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[0].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[2].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[3].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[4].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[6].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[7].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[9].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[10].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[11].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[12].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[13].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[14].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[15].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[16].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[17].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[18].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[19].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[20].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[23].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[26].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[31].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[35].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[37].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[41].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[42].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[45].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[47].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[48].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[50].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[51].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[52].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[55].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[56].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[57].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[62].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[64].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[68].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[70].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[72].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[74].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[76].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[78].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[79].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[81].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[83].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[85].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[87].OneofWrappers = []any{}
	file_kodex_providers_v1_provider_hub_proto_msgTypes[89].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_kodex_providers_v1_provider_hub_proto_rawDesc), len(file_kodex_providers_v1_provider_hub_proto_rawDesc)),
			NumEnums:      27,
			NumMessages:   91,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_kodex_providers_v1_provider_hub_proto_goTypes,
		DependencyIndexes: file_kodex_providers_v1_provider_hub_proto_depIdxs,
		EnumInfos:         file_kodex_providers_v1_provider_hub_proto_enumTypes,
		MessageInfos:      file_kodex_providers_v1_provider_hub_proto_msgTypes,
	}.Build()
	File_kodex_providers_v1_provider_hub_proto = out.File
	file_kodex_providers_v1_provider_hub_proto_goTypes = nil
	file_kodex_providers_v1_provider_hub_proto_depIdxs = nil
}
