// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.9
// 	protoc        v5.29.5
// source: spec/provider.proto

package spec

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

type GCPProvider struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Key           string                 `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Project       string                 `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GCPProvider) ProtoMessage() {}

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

func (x *GCPProvider) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *GCPProvider) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

type HetznerProvider struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Token         string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*HetznerProvider) ProtoMessage() {}

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

func (x *HetznerProvider) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

type HetznerDNSProvider struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Token         string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*HetznerDNSProvider) ProtoMessage() {}

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

func (x *HetznerDNSProvider) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

type OCIProvider struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	UserOCID        string                 `protobuf:"bytes,1,opt,name=userOCID,proto3" json:"userOCID,omitempty"`
	TenancyOCID     string                 `protobuf:"bytes,2,opt,name=tenancyOCID,proto3" json:"tenancyOCID,omitempty"`
	KeyFingerprint  string                 `protobuf:"bytes,3,opt,name=keyFingerprint,proto3" json:"keyFingerprint,omitempty"`
	CompartmentOCID string                 `protobuf:"bytes,4,opt,name=compartmentOCID,proto3" json:"compartmentOCID,omitempty"`
	PrivateKey      string                 `protobuf:"bytes,5,opt,name=privateKey,proto3" json:"privateKey,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*OCIProvider) ProtoMessage() {}

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

func (x *OCIProvider) GetUserOCID() string {
	if x != nil {
		return x.UserOCID
	}
	return ""
}

func (x *OCIProvider) GetTenancyOCID() string {
	if x != nil {
		return x.TenancyOCID
	}
	return ""
}

func (x *OCIProvider) GetKeyFingerprint() string {
	if x != nil {
		return x.KeyFingerprint
	}
	return ""
}

func (x *OCIProvider) GetCompartmentOCID() string {
	if x != nil {
		return x.CompartmentOCID
	}
	return ""
}

func (x *OCIProvider) GetPrivateKey() string {
	if x != nil {
		return x.PrivateKey
	}
	return ""
}

type AWSProvider struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SecretKey     string                 `protobuf:"bytes,1,opt,name=secretKey,proto3" json:"secretKey,omitempty"`
	AccessKey     string                 `protobuf:"bytes,2,opt,name=accessKey,proto3" json:"accessKey,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AWSProvider) ProtoMessage() {}

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

func (x *AWSProvider) GetSecretKey() string {
	if x != nil {
		return x.SecretKey
	}
	return ""
}

func (x *AWSProvider) GetAccessKey() string {
	if x != nil {
		return x.AccessKey
	}
	return ""
}

type AzureProvider struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	SubscriptionID string                 `protobuf:"bytes,1,opt,name=subscriptionID,proto3" json:"subscriptionID,omitempty"`
	TenantID       string                 `protobuf:"bytes,2,opt,name=tenantID,proto3" json:"tenantID,omitempty"`
	ClientID       string                 `protobuf:"bytes,3,opt,name=clientID,proto3" json:"clientID,omitempty"`
	ClientSecret   string                 `protobuf:"bytes,4,opt,name=clientSecret,proto3" json:"clientSecret,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*AzureProvider) ProtoMessage() {}

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

func (x *AzureProvider) GetSubscriptionID() string {
	if x != nil {
		return x.SubscriptionID
	}
	return ""
}

func (x *AzureProvider) GetTenantID() string {
	if x != nil {
		return x.TenantID
	}
	return ""
}

func (x *AzureProvider) GetClientID() string {
	if x != nil {
		return x.ClientID
	}
	return ""
}

func (x *AzureProvider) GetClientSecret() string {
	if x != nil {
		return x.ClientSecret
	}
	return ""
}

type CloudflareProvider struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Token         string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	AccountID     string                 `protobuf:"bytes,2,opt,name=accountID,proto3" json:"accountID,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CloudflareProvider) ProtoMessage() {}

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

func (x *CloudflareProvider) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *CloudflareProvider) GetAccountID() string {
	if x != nil {
		return x.AccountID
	}
	return ""
}

type GenesisCloudProvider struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Token         string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GenesisCloudProvider) ProtoMessage() {}

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

func (x *GenesisCloudProvider) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

type Provider struct {
	state             protoimpl.MessageState `protogen:"open.v1"`
	SpecName          string                 `protobuf:"bytes,1,opt,name=specName,proto3" json:"specName,omitempty"`
	CloudProviderName string                 `protobuf:"bytes,2,opt,name=cloudProviderName,proto3" json:"cloudProviderName,omitempty"`
	// Types that are valid to be assigned to ProviderType:
	//
	//	*Provider_Gcp
	//	*Provider_Hetzner
	//	*Provider_Hetznerdns
	//	*Provider_Oci
	//	*Provider_Aws
	//	*Provider_Azure
	//	*Provider_Cloudflare
	//	*Provider_Genesiscloud
	ProviderType  isProvider_ProviderType `protobuf_oneof:"ProviderType"`
	Templates     *TemplateRepository     `protobuf:"bytes,13,opt,name=templates,proto3" json:"templates,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Provider) ProtoMessage() {}

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

func (x *Provider) GetSpecName() string {
	if x != nil {
		return x.SpecName
	}
	return ""
}

func (x *Provider) GetCloudProviderName() string {
	if x != nil {
		return x.CloudProviderName
	}
	return ""
}

func (x *Provider) GetProviderType() isProvider_ProviderType {
	if x != nil {
		return x.ProviderType
	}
	return nil
}

func (x *Provider) GetGcp() *GCPProvider {
	if x != nil {
		if x, ok := x.ProviderType.(*Provider_Gcp); ok {
			return x.Gcp
		}
	}
	return nil
}

func (x *Provider) GetHetzner() *HetznerProvider {
	if x != nil {
		if x, ok := x.ProviderType.(*Provider_Hetzner); ok {
			return x.Hetzner
		}
	}
	return nil
}

func (x *Provider) GetHetznerdns() *HetznerDNSProvider {
	if x != nil {
		if x, ok := x.ProviderType.(*Provider_Hetznerdns); ok {
			return x.Hetznerdns
		}
	}
	return nil
}

func (x *Provider) GetOci() *OCIProvider {
	if x != nil {
		if x, ok := x.ProviderType.(*Provider_Oci); ok {
			return x.Oci
		}
	}
	return nil
}

func (x *Provider) GetAws() *AWSProvider {
	if x != nil {
		if x, ok := x.ProviderType.(*Provider_Aws); ok {
			return x.Aws
		}
	}
	return nil
}

func (x *Provider) GetAzure() *AzureProvider {
	if x != nil {
		if x, ok := x.ProviderType.(*Provider_Azure); ok {
			return x.Azure
		}
	}
	return nil
}

func (x *Provider) GetCloudflare() *CloudflareProvider {
	if x != nil {
		if x, ok := x.ProviderType.(*Provider_Cloudflare); ok {
			return x.Cloudflare
		}
	}
	return nil
}

func (x *Provider) GetGenesiscloud() *GenesisCloudProvider {
	if x != nil {
		if x, ok := x.ProviderType.(*Provider_Genesiscloud); ok {
			return x.Genesiscloud
		}
	}
	return nil
}

func (x *Provider) GetTemplates() *TemplateRepository {
	if x != nil {
		return x.Templates
	}
	return nil
}

type isProvider_ProviderType interface {
	isProvider_ProviderType()
}

type Provider_Gcp struct {
	Gcp *GCPProvider `protobuf:"bytes,3,opt,name=gcp,proto3,oneof"`
}

type Provider_Hetzner struct {
	Hetzner *HetznerProvider `protobuf:"bytes,4,opt,name=hetzner,proto3,oneof"`
}

type Provider_Hetznerdns struct {
	Hetznerdns *HetznerDNSProvider `protobuf:"bytes,5,opt,name=hetznerdns,proto3,oneof"`
}

type Provider_Oci struct {
	Oci *OCIProvider `protobuf:"bytes,6,opt,name=oci,proto3,oneof"`
}

type Provider_Aws struct {
	Aws *AWSProvider `protobuf:"bytes,7,opt,name=aws,proto3,oneof"`
}

type Provider_Azure struct {
	Azure *AzureProvider `protobuf:"bytes,8,opt,name=azure,proto3,oneof"`
}

type Provider_Cloudflare struct {
	Cloudflare *CloudflareProvider `protobuf:"bytes,9,opt,name=cloudflare,proto3,oneof"`
}

type Provider_Genesiscloud struct {
	Genesiscloud *GenesisCloudProvider `protobuf:"bytes,10,opt,name=genesiscloud,proto3,oneof"`
}

func (*Provider_Gcp) isProvider_ProviderType() {}

func (*Provider_Hetzner) isProvider_ProviderType() {}

func (*Provider_Hetznerdns) isProvider_ProviderType() {}

func (*Provider_Oci) isProvider_ProviderType() {}

func (*Provider_Aws) isProvider_ProviderType() {}

func (*Provider_Azure) isProvider_ProviderType() {}

func (*Provider_Cloudflare) isProvider_ProviderType() {}

func (*Provider_Genesiscloud) isProvider_ProviderType() {}

type TemplateRepository struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Repository    string                 `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	Tag           *string                `protobuf:"bytes,2,opt,name=tag,proto3,oneof" json:"tag,omitempty"`
	Path          string                 `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
	CommitHash    string                 `protobuf:"bytes,4,opt,name=commitHash,proto3" json:"commitHash,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TemplateRepository) ProtoMessage() {}

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

func (x *TemplateRepository) GetRepository() string {
	if x != nil {
		return x.Repository
	}
	return ""
}

func (x *TemplateRepository) GetTag() string {
	if x != nil && x.Tag != nil {
		return *x.Tag
	}
	return ""
}

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

func (x *TemplateRepository) GetCommitHash() string {
	if x != nil {
		return x.CommitHash
	}
	return ""
}

var File_spec_provider_proto protoreflect.FileDescriptor

const file_spec_provider_proto_rawDesc = "" +
	"\n" +
	"\x13spec/provider.proto\x12\x04spec\"9\n" +
	"\vGCPProvider\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x18\n" +
	"\aproject\x18\x02 \x01(\tR\aproject\"'\n" +
	"\x0fHetznerProvider\x12\x14\n" +
	"\x05token\x18\x01 \x01(\tR\x05token\"*\n" +
	"\x12HetznerDNSProvider\x12\x14\n" +
	"\x05token\x18\x01 \x01(\tR\x05token\"\xbd\x01\n" +
	"\vOCIProvider\x12\x1a\n" +
	"\buserOCID\x18\x01 \x01(\tR\buserOCID\x12 \n" +
	"\vtenancyOCID\x18\x02 \x01(\tR\vtenancyOCID\x12&\n" +
	"\x0ekeyFingerprint\x18\x03 \x01(\tR\x0ekeyFingerprint\x12(\n" +
	"\x0fcompartmentOCID\x18\x04 \x01(\tR\x0fcompartmentOCID\x12\x1e\n" +
	"\n" +
	"privateKey\x18\x05 \x01(\tR\n" +
	"privateKey\"I\n" +
	"\vAWSProvider\x12\x1c\n" +
	"\tsecretKey\x18\x01 \x01(\tR\tsecretKey\x12\x1c\n" +
	"\taccessKey\x18\x02 \x01(\tR\taccessKey\"\x93\x01\n" +
	"\rAzureProvider\x12&\n" +
	"\x0esubscriptionID\x18\x01 \x01(\tR\x0esubscriptionID\x12\x1a\n" +
	"\btenantID\x18\x02 \x01(\tR\btenantID\x12\x1a\n" +
	"\bclientID\x18\x03 \x01(\tR\bclientID\x12\"\n" +
	"\fclientSecret\x18\x04 \x01(\tR\fclientSecret\"H\n" +
	"\x12CloudflareProvider\x12\x14\n" +
	"\x05token\x18\x01 \x01(\tR\x05token\x12\x1c\n" +
	"\taccountID\x18\x02 \x01(\tR\taccountID\",\n" +
	"\x14GenesisCloudProvider\x12\x14\n" +
	"\x05token\x18\x01 \x01(\tR\x05token\"\xab\x04\n" +
	"\bProvider\x12\x1a\n" +
	"\bspecName\x18\x01 \x01(\tR\bspecName\x12,\n" +
	"\x11cloudProviderName\x18\x02 \x01(\tR\x11cloudProviderName\x12%\n" +
	"\x03gcp\x18\x03 \x01(\v2\x11.spec.GCPProviderH\x00R\x03gcp\x121\n" +
	"\ahetzner\x18\x04 \x01(\v2\x15.spec.HetznerProviderH\x00R\ahetzner\x12:\n" +
	"\n" +
	"hetznerdns\x18\x05 \x01(\v2\x18.spec.HetznerDNSProviderH\x00R\n" +
	"hetznerdns\x12%\n" +
	"\x03oci\x18\x06 \x01(\v2\x11.spec.OCIProviderH\x00R\x03oci\x12%\n" +
	"\x03aws\x18\a \x01(\v2\x11.spec.AWSProviderH\x00R\x03aws\x12+\n" +
	"\x05azure\x18\b \x01(\v2\x13.spec.AzureProviderH\x00R\x05azure\x12:\n" +
	"\n" +
	"cloudflare\x18\t \x01(\v2\x18.spec.CloudflareProviderH\x00R\n" +
	"cloudflare\x12@\n" +
	"\fgenesiscloud\x18\n" +
	" \x01(\v2\x1a.spec.GenesisCloudProviderH\x00R\fgenesiscloud\x126\n" +
	"\ttemplates\x18\r \x01(\v2\x18.spec.TemplateRepositoryR\ttemplatesB\x0e\n" +
	"\fProviderType\"\x87\x01\n" +
	"\x12TemplateRepository\x12\x1e\n" +
	"\n" +
	"repository\x18\x01 \x01(\tR\n" +
	"repository\x12\x15\n" +
	"\x03tag\x18\x02 \x01(\tH\x00R\x03tag\x88\x01\x01\x12\x12\n" +
	"\x04path\x18\x03 \x01(\tR\x04path\x12\x1e\n" +
	"\n" +
	"commitHash\x18\x04 \x01(\tR\n" +
	"commitHashB\x06\n" +
	"\x04_tagB)Z'github.com/berops/claudie/proto/pb/specb\x06proto3"

var (
	file_spec_provider_proto_rawDescOnce sync.Once
	file_spec_provider_proto_rawDescData []byte
)

func file_spec_provider_proto_rawDescGZIP() []byte {
	file_spec_provider_proto_rawDescOnce.Do(func() {
		file_spec_provider_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_spec_provider_proto_rawDesc), len(file_spec_provider_proto_rawDesc)))
	})
	return file_spec_provider_proto_rawDescData
}

var file_spec_provider_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_spec_provider_proto_goTypes = []any{
	(*GCPProvider)(nil),          // 0: spec.GCPProvider
	(*HetznerProvider)(nil),      // 1: spec.HetznerProvider
	(*HetznerDNSProvider)(nil),   // 2: spec.HetznerDNSProvider
	(*OCIProvider)(nil),          // 3: spec.OCIProvider
	(*AWSProvider)(nil),          // 4: spec.AWSProvider
	(*AzureProvider)(nil),        // 5: spec.AzureProvider
	(*CloudflareProvider)(nil),   // 6: spec.CloudflareProvider
	(*GenesisCloudProvider)(nil), // 7: spec.GenesisCloudProvider
	(*Provider)(nil),             // 8: spec.Provider
	(*TemplateRepository)(nil),   // 9: spec.TemplateRepository
}
var file_spec_provider_proto_depIdxs = []int32{
	0, // 0: spec.Provider.gcp:type_name -> spec.GCPProvider
	1, // 1: spec.Provider.hetzner:type_name -> spec.HetznerProvider
	2, // 2: spec.Provider.hetznerdns:type_name -> spec.HetznerDNSProvider
	3, // 3: spec.Provider.oci:type_name -> spec.OCIProvider
	4, // 4: spec.Provider.aws:type_name -> spec.AWSProvider
	5, // 5: spec.Provider.azure:type_name -> spec.AzureProvider
	6, // 6: spec.Provider.cloudflare:type_name -> spec.CloudflareProvider
	7, // 7: spec.Provider.genesiscloud:type_name -> spec.GenesisCloudProvider
	9, // 8: spec.Provider.templates:type_name -> spec.TemplateRepository
	9, // [9:9] is the sub-list for method output_type
	9, // [9:9] is the sub-list for method input_type
	9, // [9:9] is the sub-list for extension type_name
	9, // [9:9] is the sub-list for extension extendee
	0, // [0:9] is the sub-list for field type_name
}

func init() { file_spec_provider_proto_init() }
func file_spec_provider_proto_init() {
	if File_spec_provider_proto != nil {
		return
	}
	file_spec_provider_proto_msgTypes[8].OneofWrappers = []any{
		(*Provider_Gcp)(nil),
		(*Provider_Hetzner)(nil),
		(*Provider_Hetznerdns)(nil),
		(*Provider_Oci)(nil),
		(*Provider_Aws)(nil),
		(*Provider_Azure)(nil),
		(*Provider_Cloudflare)(nil),
		(*Provider_Genesiscloud)(nil),
	}
	file_spec_provider_proto_msgTypes[9].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_spec_provider_proto_rawDesc), len(file_spec_provider_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   10,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_spec_provider_proto_goTypes,
		DependencyIndexes: file_spec_provider_proto_depIdxs,
		MessageInfos:      file_spec_provider_proto_msgTypes,
	}.Build()
	File_spec_provider_proto = out.File
	file_spec_provider_proto_goTypes = nil
	file_spec_provider_proto_depIdxs = nil
}
