// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.7
// 	protoc        v5.27.5
// source: github.com/cloudprober/cloudprober/probes/browser/artifacts/proto/config.proto

package proto

import (
	proto "github.com/cloudprober/cloudprober/common/oauth/proto"
	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)
)

// S3 storage backend configuration.
type S3 struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Bucket          *string                `protobuf:"bytes,1,opt,name=bucket" json:"bucket,omitempty"`
	Region          *string                `protobuf:"bytes,2,opt,name=region" json:"region,omitempty"`
	AccessKeyId     *string                `protobuf:"bytes,3,opt,name=access_key_id,json=accessKeyId" json:"access_key_id,omitempty"`
	SecretAccessKey *string                `protobuf:"bytes,4,opt,name=secret_access_key,json=secretAccessKey" json:"secret_access_key,omitempty"`
	// S3 endpoint. If not specified, default endpoint for the region is used.
	Endpoint      *string `protobuf:"bytes,5,opt,name=endpoint" json:"endpoint,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*S3) ProtoMessage() {}

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

func (x *S3) GetBucket() string {
	if x != nil && x.Bucket != nil {
		return *x.Bucket
	}
	return ""
}

func (x *S3) GetRegion() string {
	if x != nil && x.Region != nil {
		return *x.Region
	}
	return ""
}

func (x *S3) GetAccessKeyId() string {
	if x != nil && x.AccessKeyId != nil {
		return *x.AccessKeyId
	}
	return ""
}

func (x *S3) GetSecretAccessKey() string {
	if x != nil && x.SecretAccessKey != nil {
		return *x.SecretAccessKey
	}
	return ""
}

func (x *S3) GetEndpoint() string {
	if x != nil && x.Endpoint != nil {
		return *x.Endpoint
	}
	return ""
}

type GCS struct {
	state  protoimpl.MessageState `protogen:"open.v1"`
	Bucket *string                `protobuf:"bytes,1,opt,name=bucket" json:"bucket,omitempty"`
	// If you want to use default credentials on GCE or GKE, leave this field
	// empty. See
	// https://cloudprober.org/docs/config/latest/oauth/#cloudprober_oauth_GoogleCredentials
	// for more details on oauth.GoogleCredentials.
	Credentials *proto.GoogleCredentials `protobuf:"bytes,2,opt,name=credentials" json:"credentials,omitempty"`
	// GCS endpoint.
	Endpoint      *string `protobuf:"bytes,3,opt,name=endpoint,def=https://storage.googleapis.com" json:"endpoint,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Default values for GCS fields.
const (
	Default_GCS_Endpoint = string("https://storage.googleapis.com")
)

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

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

func (*GCS) ProtoMessage() {}

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

func (x *GCS) GetBucket() string {
	if x != nil && x.Bucket != nil {
		return *x.Bucket
	}
	return ""
}

func (x *GCS) GetCredentials() *proto.GoogleCredentials {
	if x != nil {
		return x.Credentials
	}
	return nil
}

func (x *GCS) GetEndpoint() string {
	if x != nil && x.Endpoint != nil {
		return *x.Endpoint
	}
	return Default_GCS_Endpoint
}

type LocalStorage struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Dir   *string                `protobuf:"bytes,1,opt,name=dir" json:"dir,omitempty"`
	// Cleanup options for local storage. Specifying cleanup options for local
	// enables automatic cleanup of old artifacts.
	CleanupOptions *CleanupOptions `protobuf:"bytes,2,opt,name=cleanup_options,json=cleanupOptions" json:"cleanup_options,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*LocalStorage) ProtoMessage() {}

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

func (x *LocalStorage) GetDir() string {
	if x != nil && x.Dir != nil {
		return *x.Dir
	}
	return ""
}

func (x *LocalStorage) GetCleanupOptions() *CleanupOptions {
	if x != nil {
		return x.CleanupOptions
	}
	return nil
}

type ABS struct {
	state     protoimpl.MessageState `protogen:"open.v1"`
	Container *string                `protobuf:"bytes,1,opt,name=container" json:"container,omitempty"`
	// Azure account name and key. If you want to use managed identities, leave
	// account_key empty.
	AccountName *string `protobuf:"bytes,2,opt,name=account_name,json=accountName" json:"account_name,omitempty"`
	AccountKey  *string `protobuf:"bytes,3,opt,name=account_key,json=accountKey" json:"account_key,omitempty"`
	// Azure endpoint. Default is "https://<account>.blob.core.windows.net".
	Endpoint *string `protobuf:"bytes,4,opt,name=endpoint" json:"endpoint,omitempty"`
	// OAuth2 configuration. If you want to use managed identities, leave this
	// field empty. See
	// https://cloudprober.org/docs/config/latest/oauth/#cloudprober_oauth_Config
	// for more details on oauth.Config.
	OauthConfig   *proto.Config `protobuf:"bytes,5,opt,name=oauth_config,json=oauthConfig" json:"oauth_config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ABS) ProtoMessage() {}

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

func (x *ABS) GetContainer() string {
	if x != nil && x.Container != nil {
		return *x.Container
	}
	return ""
}

func (x *ABS) GetAccountName() string {
	if x != nil && x.AccountName != nil {
		return *x.AccountName
	}
	return ""
}

func (x *ABS) GetAccountKey() string {
	if x != nil && x.AccountKey != nil {
		return *x.AccountKey
	}
	return ""
}

func (x *ABS) GetEndpoint() string {
	if x != nil && x.Endpoint != nil {
		return *x.Endpoint
	}
	return ""
}

func (x *ABS) GetOauthConfig() *proto.Config {
	if x != nil {
		return x.OauthConfig
	}
	return nil
}

type Storage struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Storage:
	//
	//	*Storage_LocalStorage
	//	*Storage_S3
	//	*Storage_Gcs
	//	*Storage_Abs
	Storage isStorage_Storage `protobuf_oneof:"storage"`
	// Storage path for test artifacts. This is the path where test artifacts
	// are written to within the storage backend. For example, if storage is
	// an S3 bucket, all objects will be uploaded under this path within that
	// bucket. For global artifacts options, probes append their names to this
	// path.
	Path          *string `protobuf:"bytes,90,opt,name=path" json:"path,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Storage) ProtoMessage() {}

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

func (x *Storage) GetStorage() isStorage_Storage {
	if x != nil {
		return x.Storage
	}
	return nil
}

func (x *Storage) GetLocalStorage() *LocalStorage {
	if x != nil {
		if x, ok := x.Storage.(*Storage_LocalStorage); ok {
			return x.LocalStorage
		}
	}
	return nil
}

func (x *Storage) GetS3() *S3 {
	if x != nil {
		if x, ok := x.Storage.(*Storage_S3); ok {
			return x.S3
		}
	}
	return nil
}

func (x *Storage) GetGcs() *GCS {
	if x != nil {
		if x, ok := x.Storage.(*Storage_Gcs); ok {
			return x.Gcs
		}
	}
	return nil
}

func (x *Storage) GetAbs() *ABS {
	if x != nil {
		if x, ok := x.Storage.(*Storage_Abs); ok {
			return x.Abs
		}
	}
	return nil
}

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

type isStorage_Storage interface {
	isStorage_Storage()
}

type Storage_LocalStorage struct {
	LocalStorage *LocalStorage `protobuf:"bytes,1,opt,name=local_storage,json=localStorage,oneof"`
}

type Storage_S3 struct {
	S3 *S3 `protobuf:"bytes,2,opt,name=s3,oneof"`
}

type Storage_Gcs struct {
	Gcs *GCS `protobuf:"bytes,3,opt,name=gcs,oneof"`
}

type Storage_Abs struct {
	Abs *ABS `protobuf:"bytes,4,opt,name=abs,oneof"`
}

func (*Storage_LocalStorage) isStorage_Storage() {}

func (*Storage_S3) isStorage_Storage() {}

func (*Storage_Gcs) isStorage_Storage() {}

func (*Storage_Abs) isStorage_Storage() {}

type ArtifactsOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Serve test artifacts on Cloudprober's default webserver. This is
	// disabled by default for security reasons. If it's set to true and no
	// local storage is configured, we return an error.
	ServeOnWeb *bool `protobuf:"varint,1,opt,name=serve_on_web,json=serveOnWeb" json:"serve_on_web,omitempty"`
	// Specify web server path to serve test artifacts on.
	// Default is "/artifacts/<probename>".
	WebServerPath *string `protobuf:"bytes,2,opt,name=web_server_path,json=webServerPath" json:"web_server_path,omitempty"`
	// Web server root directory. If not provided (recommended), we just use
	// the first local storage directory if configured, and if provided, we
	// verify that it is one of the local storages directories.
	WebServerRoot *string `protobuf:"bytes,4,opt,name=web_server_root,json=webServerRoot" json:"web_server_root,omitempty"`
	// Storage for test artifacts. Note that test artifacts are always
	// written to the workdir first, and uploaded to the storage backend in a
	// parallel goroutine. This is to make sure that uploads don't block the
	// main probe execution.
	Storage       []*Storage `protobuf:"bytes,3,rep,name=storage" json:"storage,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ArtifactsOptions) ProtoMessage() {}

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

func (x *ArtifactsOptions) GetServeOnWeb() bool {
	if x != nil && x.ServeOnWeb != nil {
		return *x.ServeOnWeb
	}
	return false
}

func (x *ArtifactsOptions) GetWebServerPath() string {
	if x != nil && x.WebServerPath != nil {
		return *x.WebServerPath
	}
	return ""
}

func (x *ArtifactsOptions) GetWebServerRoot() string {
	if x != nil && x.WebServerRoot != nil {
		return *x.WebServerRoot
	}
	return ""
}

func (x *ArtifactsOptions) GetStorage() []*Storage {
	if x != nil {
		return x.Storage
	}
	return nil
}

type CleanupOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Maximum age of artifacts in seconds.
	MaxAgeSec *int32 `protobuf:"varint,1,opt,name=max_age_sec,json=maxAgeSec,def=3600" json:"max_age_sec,omitempty"`
	// Cleanup interval in seconds. Default is 1 hour or max_age_sec, whichever
	// is smaller.
	CleanupIntervalSec *int32 `protobuf:"varint,3,opt,name=cleanup_interval_sec,json=cleanupIntervalSec,def=3600" json:"cleanup_interval_sec,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

// Default values for CleanupOptions fields.
const (
	Default_CleanupOptions_MaxAgeSec          = int32(3600)
	Default_CleanupOptions_CleanupIntervalSec = int32(3600)
)

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

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

func (*CleanupOptions) ProtoMessage() {}

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

func (x *CleanupOptions) GetMaxAgeSec() int32 {
	if x != nil && x.MaxAgeSec != nil {
		return *x.MaxAgeSec
	}
	return Default_CleanupOptions_MaxAgeSec
}

func (x *CleanupOptions) GetCleanupIntervalSec() int32 {
	if x != nil && x.CleanupIntervalSec != nil {
		return *x.CleanupIntervalSec
	}
	return Default_CleanupOptions_CleanupIntervalSec
}

var File_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto protoreflect.FileDescriptor

const file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_rawDesc = "" +
	"\n" +
	"Ngithub.com/cloudprober/cloudprober/probes/browser/artifacts/proto/config.proto\x12$cloudprober.probes.browser.artifacts\x1aBgithub.com/cloudprober/cloudprober/common/oauth/proto/config.proto\"\xa0\x01\n" +
	"\x02S3\x12\x16\n" +
	"\x06bucket\x18\x01 \x01(\tR\x06bucket\x12\x16\n" +
	"\x06region\x18\x02 \x01(\tR\x06region\x12\"\n" +
	"\raccess_key_id\x18\x03 \x01(\tR\vaccessKeyId\x12*\n" +
	"\x11secret_access_key\x18\x04 \x01(\tR\x0fsecretAccessKey\x12\x1a\n" +
	"\bendpoint\x18\x05 \x01(\tR\bendpoint\"\xa1\x01\n" +
	"\x03GCS\x12\x16\n" +
	"\x06bucket\x18\x01 \x01(\tR\x06bucket\x12F\n" +
	"\vcredentials\x18\x02 \x01(\v2$.cloudprober.oauth.GoogleCredentialsR\vcredentials\x12:\n" +
	"\bendpoint\x18\x03 \x01(\t:\x1ehttps://storage.googleapis.comR\bendpoint\"\x7f\n" +
	"\fLocalStorage\x12\x10\n" +
	"\x03dir\x18\x01 \x01(\tR\x03dir\x12]\n" +
	"\x0fcleanup_options\x18\x02 \x01(\v24.cloudprober.probes.browser.artifacts.CleanupOptionsR\x0ecleanupOptions\"\xc1\x01\n" +
	"\x03ABS\x12\x1c\n" +
	"\tcontainer\x18\x01 \x01(\tR\tcontainer\x12!\n" +
	"\faccount_name\x18\x02 \x01(\tR\vaccountName\x12\x1f\n" +
	"\vaccount_key\x18\x03 \x01(\tR\n" +
	"accountKey\x12\x1a\n" +
	"\bendpoint\x18\x04 \x01(\tR\bendpoint\x12<\n" +
	"\foauth_config\x18\x05 \x01(\v2\x19.cloudprober.oauth.ConfigR\voauthConfig\"\xbd\x02\n" +
	"\aStorage\x12Y\n" +
	"\rlocal_storage\x18\x01 \x01(\v22.cloudprober.probes.browser.artifacts.LocalStorageH\x00R\flocalStorage\x12:\n" +
	"\x02s3\x18\x02 \x01(\v2(.cloudprober.probes.browser.artifacts.S3H\x00R\x02s3\x12=\n" +
	"\x03gcs\x18\x03 \x01(\v2).cloudprober.probes.browser.artifacts.GCSH\x00R\x03gcs\x12=\n" +
	"\x03abs\x18\x04 \x01(\v2).cloudprober.probes.browser.artifacts.ABSH\x00R\x03abs\x12\x12\n" +
	"\x04path\x18Z \x01(\tR\x04pathB\t\n" +
	"\astorage\"\xcd\x01\n" +
	"\x10ArtifactsOptions\x12 \n" +
	"\fserve_on_web\x18\x01 \x01(\bR\n" +
	"serveOnWeb\x12&\n" +
	"\x0fweb_server_path\x18\x02 \x01(\tR\rwebServerPath\x12&\n" +
	"\x0fweb_server_root\x18\x04 \x01(\tR\rwebServerRoot\x12G\n" +
	"\astorage\x18\x03 \x03(\v2-.cloudprober.probes.browser.artifacts.StorageR\astorage\"n\n" +
	"\x0eCleanupOptions\x12$\n" +
	"\vmax_age_sec\x18\x01 \x01(\x05:\x043600R\tmaxAgeSec\x126\n" +
	"\x14cleanup_interval_sec\x18\x03 \x01(\x05:\x043600R\x12cleanupIntervalSecBCZAgithub.com/cloudprober/cloudprober/probes/browser/artifacts/proto"

var (
	file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_rawDescOnce sync.Once
	file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_rawDescData []byte
)

func file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_rawDescGZIP() []byte {
	file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_rawDescOnce.Do(func() {
		file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_rawDesc)))
	})
	return file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_rawDescData
}

var file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_goTypes = []any{
	(*S3)(nil),                      // 0: cloudprober.probes.browser.artifacts.S3
	(*GCS)(nil),                     // 1: cloudprober.probes.browser.artifacts.GCS
	(*LocalStorage)(nil),            // 2: cloudprober.probes.browser.artifacts.LocalStorage
	(*ABS)(nil),                     // 3: cloudprober.probes.browser.artifacts.ABS
	(*Storage)(nil),                 // 4: cloudprober.probes.browser.artifacts.Storage
	(*ArtifactsOptions)(nil),        // 5: cloudprober.probes.browser.artifacts.ArtifactsOptions
	(*CleanupOptions)(nil),          // 6: cloudprober.probes.browser.artifacts.CleanupOptions
	(*proto.GoogleCredentials)(nil), // 7: cloudprober.oauth.GoogleCredentials
	(*proto.Config)(nil),            // 8: cloudprober.oauth.Config
}
var file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_depIdxs = []int32{
	7, // 0: cloudprober.probes.browser.artifacts.GCS.credentials:type_name -> cloudprober.oauth.GoogleCredentials
	6, // 1: cloudprober.probes.browser.artifacts.LocalStorage.cleanup_options:type_name -> cloudprober.probes.browser.artifacts.CleanupOptions
	8, // 2: cloudprober.probes.browser.artifacts.ABS.oauth_config:type_name -> cloudprober.oauth.Config
	2, // 3: cloudprober.probes.browser.artifacts.Storage.local_storage:type_name -> cloudprober.probes.browser.artifacts.LocalStorage
	0, // 4: cloudprober.probes.browser.artifacts.Storage.s3:type_name -> cloudprober.probes.browser.artifacts.S3
	1, // 5: cloudprober.probes.browser.artifacts.Storage.gcs:type_name -> cloudprober.probes.browser.artifacts.GCS
	3, // 6: cloudprober.probes.browser.artifacts.Storage.abs:type_name -> cloudprober.probes.browser.artifacts.ABS
	4, // 7: cloudprober.probes.browser.artifacts.ArtifactsOptions.storage:type_name -> cloudprober.probes.browser.artifacts.Storage
	8, // [8:8] is the sub-list for method output_type
	8, // [8:8] is the sub-list for method input_type
	8, // [8:8] is the sub-list for extension type_name
	8, // [8:8] is the sub-list for extension extendee
	0, // [0:8] is the sub-list for field type_name
}

func init() {
	file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_init()
}
func file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_init() {
	if File_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto != nil {
		return
	}
	file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_msgTypes[4].OneofWrappers = []any{
		(*Storage_LocalStorage)(nil),
		(*Storage_S3)(nil),
		(*Storage_Gcs)(nil),
		(*Storage_Abs)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_rawDesc), len(file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   7,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_goTypes,
		DependencyIndexes: file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_depIdxs,
		MessageInfos:      file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_msgTypes,
	}.Build()
	File_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto = out.File
	file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_goTypes = nil
	file_github_com_cloudprober_cloudprober_probes_browser_artifacts_proto_config_proto_depIdxs = nil
}
