// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v7.35.1
// source: envoy/extensions/common/aws/v3/credential_provider.proto

package awsv3

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	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)
)

// Configuration for AWS credential provider. This is optional and the credentials are normally
// retrieved from the environment or AWS configuration files by following the default credential
// provider chain. However, this configuration can be used to override the default behavior.
// [#next-free-field: 11]
type AwsCredentialProvider struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The option to use `AssumeRoleWithWebIdentity <https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html>`_.
	AssumeRoleWithWebIdentityProvider *AssumeRoleWithWebIdentityCredentialProvider `protobuf:"bytes,1,opt,name=assume_role_with_web_identity_provider,json=assumeRoleWithWebIdentityProvider,proto3" json:"assume_role_with_web_identity_provider,omitempty"`
	// The option to use an inline credential. If inline credential is provided, no chain will be created and only the inline credential will be used.
	InlineCredential *InlineCredentialProvider `protobuf:"bytes,2,opt,name=inline_credential,json=inlineCredential,proto3" json:"inline_credential,omitempty"`
	// The option to specify parameters for credential retrieval from an envoy data source, such as a file in AWS credential format.
	CredentialsFileProvider *CredentialsFileCredentialProvider `protobuf:"bytes,3,opt,name=credentials_file_provider,json=credentialsFileProvider,proto3" json:"credentials_file_provider,omitempty"`
	// Create a custom credential provider chain instead of the default credential provider chain.
	// If set to TRUE, the credential provider chain that is created contains only those set in this credential provider message.
	// If set to FALSE, the settings provided here will act as modifiers to the default credential provider chain.
	// Defaults to FALSE.
	//
	// This has no effect if inline_credential is provided.
	CustomCredentialProviderChain bool `protobuf:"varint,4,opt,name=custom_credential_provider_chain,json=customCredentialProviderChain,proto3" json:"custom_credential_provider_chain,omitempty"`
	// The option to use `IAM Roles Anywhere <https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html>`_.
	IamRolesAnywhereCredentialProvider *IAMRolesAnywhereCredentialProvider `protobuf:"bytes,5,opt,name=iam_roles_anywhere_credential_provider,json=iamRolesAnywhereCredentialProvider,proto3" json:"iam_roles_anywhere_credential_provider,omitempty"`
	// The option to use credentials sourced from standard `AWS configuration files <https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html>`_.
	ConfigCredentialProvider *ConfigCredentialProvider `protobuf:"bytes,6,opt,name=config_credential_provider,json=configCredentialProvider,proto3" json:"config_credential_provider,omitempty"`
	// The option to use credentials sourced from `container environment variables <https://docs.aws.amazon.com/sdkref/latest/guide/feature-container-credentials.html>`_.
	ContainerCredentialProvider *ContainerCredentialProvider `protobuf:"bytes,7,opt,name=container_credential_provider,json=containerCredentialProvider,proto3" json:"container_credential_provider,omitempty"`
	// The option to use credentials sourced from `environment variables <https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html>`_.
	EnvironmentCredentialProvider *EnvironmentCredentialProvider `protobuf:"bytes,8,opt,name=environment_credential_provider,json=environmentCredentialProvider,proto3" json:"environment_credential_provider,omitempty"`
	// The option to use credentials sourced from an EC2 `Instance Profile <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html>`_.
	InstanceProfileCredentialProvider *InstanceProfileCredentialProvider `protobuf:"bytes,9,opt,name=instance_profile_credential_provider,json=instanceProfileCredentialProvider,proto3" json:"instance_profile_credential_provider,omitempty"`
	// The option to use `STS:AssumeRole aka Role Chaining <https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html>`_.
	AssumeRoleCredentialProvider *AssumeRoleCredentialProvider `protobuf:"bytes,10,opt,name=assume_role_credential_provider,json=assumeRoleCredentialProvider,proto3" json:"assume_role_credential_provider,omitempty"`
	unknownFields                protoimpl.UnknownFields
	sizeCache                    protoimpl.SizeCache
}

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

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

func (*AwsCredentialProvider) ProtoMessage() {}

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

func (x *AwsCredentialProvider) GetAssumeRoleWithWebIdentityProvider() *AssumeRoleWithWebIdentityCredentialProvider {
	if x != nil {
		return x.AssumeRoleWithWebIdentityProvider
	}
	return nil
}

func (x *AwsCredentialProvider) GetInlineCredential() *InlineCredentialProvider {
	if x != nil {
		return x.InlineCredential
	}
	return nil
}

func (x *AwsCredentialProvider) GetCredentialsFileProvider() *CredentialsFileCredentialProvider {
	if x != nil {
		return x.CredentialsFileProvider
	}
	return nil
}

func (x *AwsCredentialProvider) GetCustomCredentialProviderChain() bool {
	if x != nil {
		return x.CustomCredentialProviderChain
	}
	return false
}

func (x *AwsCredentialProvider) GetIamRolesAnywhereCredentialProvider() *IAMRolesAnywhereCredentialProvider {
	if x != nil {
		return x.IamRolesAnywhereCredentialProvider
	}
	return nil
}

func (x *AwsCredentialProvider) GetConfigCredentialProvider() *ConfigCredentialProvider {
	if x != nil {
		return x.ConfigCredentialProvider
	}
	return nil
}

func (x *AwsCredentialProvider) GetContainerCredentialProvider() *ContainerCredentialProvider {
	if x != nil {
		return x.ContainerCredentialProvider
	}
	return nil
}

func (x *AwsCredentialProvider) GetEnvironmentCredentialProvider() *EnvironmentCredentialProvider {
	if x != nil {
		return x.EnvironmentCredentialProvider
	}
	return nil
}

func (x *AwsCredentialProvider) GetInstanceProfileCredentialProvider() *InstanceProfileCredentialProvider {
	if x != nil {
		return x.InstanceProfileCredentialProvider
	}
	return nil
}

func (x *AwsCredentialProvider) GetAssumeRoleCredentialProvider() *AssumeRoleCredentialProvider {
	if x != nil {
		return x.AssumeRoleCredentialProvider
	}
	return nil
}

// Configuration to use an inline AWS credential. This is an equivalent to setting the well-known
// environment variables “AWS_ACCESS_KEY_ID“, “AWS_SECRET_ACCESS_KEY“, and the optional “AWS_SESSION_TOKEN“.
type InlineCredentialProvider struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The AWS access key ID.
	AccessKeyId string `protobuf:"bytes,1,opt,name=access_key_id,json=accessKeyId,proto3" json:"access_key_id,omitempty"`
	// The AWS secret access key.
	SecretAccessKey string `protobuf:"bytes,2,opt,name=secret_access_key,json=secretAccessKey,proto3" json:"secret_access_key,omitempty"`
	// The AWS session token. This is optional.
	SessionToken  string `protobuf:"bytes,3,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*InlineCredentialProvider) ProtoMessage() {}

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

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

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

func (x *InlineCredentialProvider) GetSessionToken() string {
	if x != nil {
		return x.SessionToken
	}
	return ""
}

// Configuration to use `AssumeRoleWithWebIdentity <https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html>`_
// to retrieve AWS credentials.
type AssumeRoleWithWebIdentityCredentialProvider struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Data source for a web identity token that is provided by the identity provider to assume the role.
	// If a “watched_directory“ is not provided, one will be automatically inferred from the directory of the token file. This is to ensure
	// that if the token file is rotated, the new token will be picked up. This behaviour differs from the standard envoy data source behavior, which does not
	// automatically watch the directory of a file data source.
	// Even when file rotation occurs, current credentials will continue to be used until they expire, at which point new credentials will be retrieved using the new token.
	WebIdentityTokenDataSource *v3.DataSource `protobuf:"bytes,1,opt,name=web_identity_token_data_source,json=webIdentityTokenDataSource,proto3" json:"web_identity_token_data_source,omitempty"`
	// The ARN of the role to assume.
	RoleArn string `protobuf:"bytes,2,opt,name=role_arn,json=roleArn,proto3" json:"role_arn,omitempty"`
	// Optional role session name to use in AssumeRoleWithWebIdentity API call.
	RoleSessionName string `protobuf:"bytes,3,opt,name=role_session_name,json=roleSessionName,proto3" json:"role_session_name,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*AssumeRoleWithWebIdentityCredentialProvider) ProtoMessage() {}

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

func (x *AssumeRoleWithWebIdentityCredentialProvider) GetWebIdentityTokenDataSource() *v3.DataSource {
	if x != nil {
		return x.WebIdentityTokenDataSource
	}
	return nil
}

func (x *AssumeRoleWithWebIdentityCredentialProvider) GetRoleArn() string {
	if x != nil {
		return x.RoleArn
	}
	return ""
}

func (x *AssumeRoleWithWebIdentityCredentialProvider) GetRoleSessionName() string {
	if x != nil {
		return x.RoleSessionName
	}
	return ""
}

type CredentialsFileCredentialProvider struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Data source from which to retrieve AWS credentials
	// When using this data source, if a “watched_directory“ is provided, the credential file will be re-read when a file move is detected.
	// See :ref:`watched_directory <envoy_v3_api_msg_config.core.v3.DataSource>` for more information about the “watched_directory“ field.
	CredentialsDataSource *v3.DataSource `protobuf:"bytes,1,opt,name=credentials_data_source,json=credentialsDataSource,proto3" json:"credentials_data_source,omitempty"`
	// The profile within the credentials_file data source. If not provided, the default profile will be used.
	Profile       string `protobuf:"bytes,2,opt,name=profile,proto3" json:"profile,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CredentialsFileCredentialProvider) ProtoMessage() {}

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

func (x *CredentialsFileCredentialProvider) GetCredentialsDataSource() *v3.DataSource {
	if x != nil {
		return x.CredentialsDataSource
	}
	return nil
}

func (x *CredentialsFileCredentialProvider) GetProfile() string {
	if x != nil {
		return x.Profile
	}
	return ""
}

// Configuration to use `IAM Roles Anywhere <https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html>`_
// to retrieve AWS credentials.
// [#next-free-field: 9]
type IAMRolesAnywhereCredentialProvider struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ARN of the role to assume via the IAM Roles Anywhere sessions API. See `Configure Roles <https://docs.aws.amazon.com/rolesanywhere/latest/userguide/getting-started.html#getting-started-step2>`_ for more details.
	RoleArn string `protobuf:"bytes,1,opt,name=role_arn,json=roleArn,proto3" json:"role_arn,omitempty"`
	// The certificate used for authenticating to the IAM Roles Anywhere service.
	// This certificate must match one configured in the IAM Roles Anywhere profile. See `Configure Roles <https://docs.aws.amazon.com/rolesanywhere/latest/userguide/getting-started.html#getting-started-step2>`_ for more details.
	Certificate *v3.DataSource `protobuf:"bytes,2,opt,name=certificate,proto3" json:"certificate,omitempty"`
	// The optional certificate chain, required when you are using a subordinate certificate authority for certificate issuance.
	// A certificate chain can contain a maximum of 5 elements, see `The IAM Roles Anywhere authentication process <https://docs.aws.amazon.com/rolesanywhere/latest/userguide/authentication.html>`_ for more details.
	CertificateChain *v3.DataSource `protobuf:"bytes,3,opt,name=certificate_chain,json=certificateChain,proto3" json:"certificate_chain,omitempty"`
	// The TLS private key matching the certificate provided.
	PrivateKey *v3.DataSource `protobuf:"bytes,4,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"`
	// The arn of the IAM Roles Anywhere trust anchor configured in your AWS account. A trust anchor in IAM Roles anywhere establishes
	// trust between your certificate authority (CA) and AWS. See `Establish trust <https://docs.aws.amazon.com/rolesanywhere/latest/userguide/getting-started.html#getting-started-step1>`_ for more details.
	TrustAnchorArn string `protobuf:"bytes,5,opt,name=trust_anchor_arn,json=trustAnchorArn,proto3" json:"trust_anchor_arn,omitempty"`
	// The IAM Roles Anywhere profile ARN configured in your AWS account.
	ProfileArn string `protobuf:"bytes,6,opt,name=profile_arn,json=profileArn,proto3" json:"profile_arn,omitempty"`
	// An optional role session name, used when identifying the role in subsequent AWS API calls.
	RoleSessionName string `protobuf:"bytes,7,opt,name=role_session_name,json=roleSessionName,proto3" json:"role_session_name,omitempty"`
	// An optional session duration, used when calculating the maximum time before vended credentials expire. This value cannot exceed the value configured
	// in the IAM Roles Anywhere profile and the resultant session duration is calculate by the formula `here <https://docs.aws.amazon.com/rolesanywhere/latest/userguide/authentication-create-session.html#credentials-object>`_.
	// If no session duration is provided here, the session duration is sourced from the IAM Roles Anywhere profile.
	SessionDuration *durationpb.Duration `protobuf:"bytes,8,opt,name=session_duration,json=sessionDuration,proto3" json:"session_duration,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*IAMRolesAnywhereCredentialProvider) ProtoMessage() {}

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

func (x *IAMRolesAnywhereCredentialProvider) GetRoleArn() string {
	if x != nil {
		return x.RoleArn
	}
	return ""
}

func (x *IAMRolesAnywhereCredentialProvider) GetCertificate() *v3.DataSource {
	if x != nil {
		return x.Certificate
	}
	return nil
}

func (x *IAMRolesAnywhereCredentialProvider) GetCertificateChain() *v3.DataSource {
	if x != nil {
		return x.CertificateChain
	}
	return nil
}

func (x *IAMRolesAnywhereCredentialProvider) GetPrivateKey() *v3.DataSource {
	if x != nil {
		return x.PrivateKey
	}
	return nil
}

func (x *IAMRolesAnywhereCredentialProvider) GetTrustAnchorArn() string {
	if x != nil {
		return x.TrustAnchorArn
	}
	return ""
}

func (x *IAMRolesAnywhereCredentialProvider) GetProfileArn() string {
	if x != nil {
		return x.ProfileArn
	}
	return ""
}

func (x *IAMRolesAnywhereCredentialProvider) GetRoleSessionName() string {
	if x != nil {
		return x.RoleSessionName
	}
	return ""
}

func (x *IAMRolesAnywhereCredentialProvider) GetSessionDuration() *durationpb.Duration {
	if x != nil {
		return x.SessionDuration
	}
	return nil
}

// The Config Credential Provider has no configurable parameters, but listing it in a custom credential provider chain will enable this
// credential provider.
type ConfigCredentialProvider struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ConfigCredentialProvider) ProtoMessage() {}

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

// The Container Credential Provider has no configurable parameters, but listing it in a custom credential provider chain will enable this
// credential provider.
type ContainerCredentialProvider struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ContainerCredentialProvider) ProtoMessage() {}

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

// The Environment Credential Provider has no configurable parameters, but listing it in a custom credential provider chain will enable this
// credential provider.
type EnvironmentCredentialProvider struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EnvironmentCredentialProvider) ProtoMessage() {}

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

// The Instance Profile Credential Provider has no configurable parameters, but listing it in a custom credential provider chain will enable this
// credential provider.
type InstanceProfileCredentialProvider struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*InstanceProfileCredentialProvider) ProtoMessage() {}

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

// Configuration to use `AssumeRole <https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html>`_ for retrieving new credentials, via role chaining.
// [#next-free-field: 6]
type AssumeRoleCredentialProvider struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ARN of the role to assume.
	RoleArn string `protobuf:"bytes,1,opt,name=role_arn,json=roleArn,proto3" json:"role_arn,omitempty"`
	// An optional role session name, used when identifying the role in subsequent AWS API calls. If not provided, the role session name will default
	// to the current timestamp.
	RoleSessionName string `protobuf:"bytes,2,opt,name=role_session_name,json=roleSessionName,proto3" json:"role_session_name,omitempty"`
	// Optional string value to use as the externalId
	ExternalId string `protobuf:"bytes,3,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"`
	// An optional duration, in seconds, of the role session. Minimum role duration is 900s (5 minutes) and maximum is 43200s (12 hours).
	// If the session duration is not provided, the default will be determined using the `table described here <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html>`_.
	SessionDuration *durationpb.Duration `protobuf:"bytes,4,opt,name=session_duration,json=sessionDuration,proto3" json:"session_duration,omitempty"`
	// The credential provider for signing the AssumeRole request. This is optional and if not set,
	// it will be retrieved from the procedure described in :ref:`config_http_filters_aws_request_signing`.
	// This list of credential providers cannot include an AssumeRole credential provider and if one is provided
	// it will be ignored.
	CredentialProvider *AwsCredentialProvider `protobuf:"bytes,5,opt,name=credential_provider,json=credentialProvider,proto3" json:"credential_provider,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*AssumeRoleCredentialProvider) ProtoMessage() {}

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

func (x *AssumeRoleCredentialProvider) GetRoleArn() string {
	if x != nil {
		return x.RoleArn
	}
	return ""
}

func (x *AssumeRoleCredentialProvider) GetRoleSessionName() string {
	if x != nil {
		return x.RoleSessionName
	}
	return ""
}

func (x *AssumeRoleCredentialProvider) GetExternalId() string {
	if x != nil {
		return x.ExternalId
	}
	return ""
}

func (x *AssumeRoleCredentialProvider) GetSessionDuration() *durationpb.Duration {
	if x != nil {
		return x.SessionDuration
	}
	return nil
}

func (x *AssumeRoleCredentialProvider) GetCredentialProvider() *AwsCredentialProvider {
	if x != nil {
		return x.CredentialProvider
	}
	return nil
}

var File_envoy_extensions_common_aws_v3_credential_provider_proto protoreflect.FileDescriptor

const file_envoy_extensions_common_aws_v3_credential_provider_proto_rawDesc = "" +
	"\n" +
	"8envoy/extensions/common/aws/v3/credential_provider.proto\x12\x1eenvoy.extensions.common.aws.v3\x1a\x1fenvoy/config/core/v3/base.proto\x1a\x1egoogle/protobuf/duration.proto\x1a udpa/annotations/sensitive.proto\x1a\x1dudpa/annotations/status.proto\x1a\x17validate/validate.proto\"\x9c\n" +
	"\n" +
	"\x15AwsCredentialProvider\x12\x9e\x01\n" +
	"&assume_role_with_web_identity_provider\x18\x01 \x01(\v2K.envoy.extensions.common.aws.v3.AssumeRoleWithWebIdentityCredentialProviderR!assumeRoleWithWebIdentityProvider\x12e\n" +
	"\x11inline_credential\x18\x02 \x01(\v28.envoy.extensions.common.aws.v3.InlineCredentialProviderR\x10inlineCredential\x12}\n" +
	"\x19credentials_file_provider\x18\x03 \x01(\v2A.envoy.extensions.common.aws.v3.CredentialsFileCredentialProviderR\x17credentialsFileProvider\x12G\n" +
	" custom_credential_provider_chain\x18\x04 \x01(\bR\x1dcustomCredentialProviderChain\x12\x96\x01\n" +
	"&iam_roles_anywhere_credential_provider\x18\x05 \x01(\v2B.envoy.extensions.common.aws.v3.IAMRolesAnywhereCredentialProviderR\"iamRolesAnywhereCredentialProvider\x12v\n" +
	"\x1aconfig_credential_provider\x18\x06 \x01(\v28.envoy.extensions.common.aws.v3.ConfigCredentialProviderR\x18configCredentialProvider\x12\x7f\n" +
	"\x1dcontainer_credential_provider\x18\a \x01(\v2;.envoy.extensions.common.aws.v3.ContainerCredentialProviderR\x1bcontainerCredentialProvider\x12\x85\x01\n" +
	"\x1fenvironment_credential_provider\x18\b \x01(\v2=.envoy.extensions.common.aws.v3.EnvironmentCredentialProviderR\x1denvironmentCredentialProvider\x12\x92\x01\n" +
	"$instance_profile_credential_provider\x18\t \x01(\v2A.envoy.extensions.common.aws.v3.InstanceProfileCredentialProviderR!instanceProfileCredentialProvider\x12\x83\x01\n" +
	"\x1fassume_role_credential_provider\x18\n" +
	" \x01(\v2<.envoy.extensions.common.aws.v3.AssumeRoleCredentialProviderR\x1cassumeRoleCredentialProvider\"\xaf\x01\n" +
	"\x18InlineCredentialProvider\x12+\n" +
	"\raccess_key_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\vaccessKeyId\x129\n" +
	"\x11secret_access_key\x18\x02 \x01(\tB\r\xfaB\x04r\x02\x10\x01\xb8\xb7\x8b\xa4\x02\x01R\x0fsecretAccessKey\x12+\n" +
	"\rsession_token\x18\x03 \x01(\tB\x06\xb8\xb7\x8b\xa4\x02\x01R\fsessionToken\"\xeb\x01\n" +
	"+AssumeRoleWithWebIdentityCredentialProvider\x12l\n" +
	"\x1eweb_identity_token_data_source\x18\x01 \x01(\v2 .envoy.config.core.v3.DataSourceB\x06\xb8\xb7\x8b\xa4\x02\x01R\x1awebIdentityTokenDataSource\x12\"\n" +
	"\brole_arn\x18\x02 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\aroleArn\x12*\n" +
	"\x11role_session_name\x18\x03 \x01(\tR\x0froleSessionName\"\x9f\x01\n" +
	"!CredentialsFileCredentialProvider\x12`\n" +
	"\x17credentials_data_source\x18\x01 \x01(\v2 .envoy.config.core.v3.DataSourceB\x06\xb8\xb7\x8b\xa4\x02\x01R\x15credentialsDataSource\x12\x18\n" +
	"\aprofile\x18\x02 \x01(\tR\aprofile\"\x9a\x04\n" +
	"\"IAMRolesAnywhereCredentialProvider\x12\"\n" +
	"\brole_arn\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\aroleArn\x12L\n" +
	"\vcertificate\x18\x02 \x01(\v2 .envoy.config.core.v3.DataSourceB\b\xfaB\x05\x8a\x01\x02\x10\x01R\vcertificate\x12M\n" +
	"\x11certificate_chain\x18\x03 \x01(\v2 .envoy.config.core.v3.DataSourceR\x10certificateChain\x12Q\n" +
	"\vprivate_key\x18\x04 \x01(\v2 .envoy.config.core.v3.DataSourceB\x0e\xfaB\x05\x8a\x01\x02\x10\x01\xb8\xb7\x8b\xa4\x02\x01R\n" +
	"privateKey\x121\n" +
	"\x10trust_anchor_arn\x18\x05 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\x0etrustAnchorArn\x12(\n" +
	"\vprofile_arn\x18\x06 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\n" +
	"profileArn\x12*\n" +
	"\x11role_session_name\x18\a \x01(\tR\x0froleSessionName\x12W\n" +
	"\x10session_duration\x18\b \x01(\v2\x19.google.protobuf.DurationB\x11\xfaB\x0e\xaa\x01\v\"\x04\b\xc0\xd1\x022\x03\b\x84\aR\x0fsessionDuration\"\x1a\n" +
	"\x18ConfigCredentialProvider\"\x1d\n" +
	"\x1bContainerCredentialProvider\"\x1f\n" +
	"\x1dEnvironmentCredentialProvider\"#\n" +
	"!InstanceProfileCredentialProvider\"\xd0\x02\n" +
	"\x1cAssumeRoleCredentialProvider\x12\"\n" +
	"\brole_arn\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\aroleArn\x12*\n" +
	"\x11role_session_name\x18\x02 \x01(\tR\x0froleSessionName\x12\x1f\n" +
	"\vexternal_id\x18\x03 \x01(\tR\n" +
	"externalId\x12W\n" +
	"\x10session_duration\x18\x04 \x01(\v2\x19.google.protobuf.DurationB\x11\xfaB\x0e\xaa\x01\v\"\x04\b\xc0\xd1\x022\x03\b\x84\aR\x0fsessionDuration\x12f\n" +
	"\x13credential_provider\x18\x05 \x01(\v25.envoy.extensions.common.aws.v3.AwsCredentialProviderR\x12credentialProviderB\x9e\x01\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	",io.envoyproxy.envoy.extensions.common.aws.v3B\x17CredentialProviderProtoP\x01ZKgithub.com/envoyproxy/go-control-plane/envoy/extensions/common/aws/v3;awsv3b\x06proto3"

var (
	file_envoy_extensions_common_aws_v3_credential_provider_proto_rawDescOnce sync.Once
	file_envoy_extensions_common_aws_v3_credential_provider_proto_rawDescData []byte
)

func file_envoy_extensions_common_aws_v3_credential_provider_proto_rawDescGZIP() []byte {
	file_envoy_extensions_common_aws_v3_credential_provider_proto_rawDescOnce.Do(func() {
		file_envoy_extensions_common_aws_v3_credential_provider_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_envoy_extensions_common_aws_v3_credential_provider_proto_rawDesc), len(file_envoy_extensions_common_aws_v3_credential_provider_proto_rawDesc)))
	})
	return file_envoy_extensions_common_aws_v3_credential_provider_proto_rawDescData
}

var file_envoy_extensions_common_aws_v3_credential_provider_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_envoy_extensions_common_aws_v3_credential_provider_proto_goTypes = []any{
	(*AwsCredentialProvider)(nil),                       // 0: envoy.extensions.common.aws.v3.AwsCredentialProvider
	(*InlineCredentialProvider)(nil),                    // 1: envoy.extensions.common.aws.v3.InlineCredentialProvider
	(*AssumeRoleWithWebIdentityCredentialProvider)(nil), // 2: envoy.extensions.common.aws.v3.AssumeRoleWithWebIdentityCredentialProvider
	(*CredentialsFileCredentialProvider)(nil),           // 3: envoy.extensions.common.aws.v3.CredentialsFileCredentialProvider
	(*IAMRolesAnywhereCredentialProvider)(nil),          // 4: envoy.extensions.common.aws.v3.IAMRolesAnywhereCredentialProvider
	(*ConfigCredentialProvider)(nil),                    // 5: envoy.extensions.common.aws.v3.ConfigCredentialProvider
	(*ContainerCredentialProvider)(nil),                 // 6: envoy.extensions.common.aws.v3.ContainerCredentialProvider
	(*EnvironmentCredentialProvider)(nil),               // 7: envoy.extensions.common.aws.v3.EnvironmentCredentialProvider
	(*InstanceProfileCredentialProvider)(nil),           // 8: envoy.extensions.common.aws.v3.InstanceProfileCredentialProvider
	(*AssumeRoleCredentialProvider)(nil),                // 9: envoy.extensions.common.aws.v3.AssumeRoleCredentialProvider
	(*v3.DataSource)(nil),                               // 10: envoy.config.core.v3.DataSource
	(*durationpb.Duration)(nil),                         // 11: google.protobuf.Duration
}
var file_envoy_extensions_common_aws_v3_credential_provider_proto_depIdxs = []int32{
	2,  // 0: envoy.extensions.common.aws.v3.AwsCredentialProvider.assume_role_with_web_identity_provider:type_name -> envoy.extensions.common.aws.v3.AssumeRoleWithWebIdentityCredentialProvider
	1,  // 1: envoy.extensions.common.aws.v3.AwsCredentialProvider.inline_credential:type_name -> envoy.extensions.common.aws.v3.InlineCredentialProvider
	3,  // 2: envoy.extensions.common.aws.v3.AwsCredentialProvider.credentials_file_provider:type_name -> envoy.extensions.common.aws.v3.CredentialsFileCredentialProvider
	4,  // 3: envoy.extensions.common.aws.v3.AwsCredentialProvider.iam_roles_anywhere_credential_provider:type_name -> envoy.extensions.common.aws.v3.IAMRolesAnywhereCredentialProvider
	5,  // 4: envoy.extensions.common.aws.v3.AwsCredentialProvider.config_credential_provider:type_name -> envoy.extensions.common.aws.v3.ConfigCredentialProvider
	6,  // 5: envoy.extensions.common.aws.v3.AwsCredentialProvider.container_credential_provider:type_name -> envoy.extensions.common.aws.v3.ContainerCredentialProvider
	7,  // 6: envoy.extensions.common.aws.v3.AwsCredentialProvider.environment_credential_provider:type_name -> envoy.extensions.common.aws.v3.EnvironmentCredentialProvider
	8,  // 7: envoy.extensions.common.aws.v3.AwsCredentialProvider.instance_profile_credential_provider:type_name -> envoy.extensions.common.aws.v3.InstanceProfileCredentialProvider
	9,  // 8: envoy.extensions.common.aws.v3.AwsCredentialProvider.assume_role_credential_provider:type_name -> envoy.extensions.common.aws.v3.AssumeRoleCredentialProvider
	10, // 9: envoy.extensions.common.aws.v3.AssumeRoleWithWebIdentityCredentialProvider.web_identity_token_data_source:type_name -> envoy.config.core.v3.DataSource
	10, // 10: envoy.extensions.common.aws.v3.CredentialsFileCredentialProvider.credentials_data_source:type_name -> envoy.config.core.v3.DataSource
	10, // 11: envoy.extensions.common.aws.v3.IAMRolesAnywhereCredentialProvider.certificate:type_name -> envoy.config.core.v3.DataSource
	10, // 12: envoy.extensions.common.aws.v3.IAMRolesAnywhereCredentialProvider.certificate_chain:type_name -> envoy.config.core.v3.DataSource
	10, // 13: envoy.extensions.common.aws.v3.IAMRolesAnywhereCredentialProvider.private_key:type_name -> envoy.config.core.v3.DataSource
	11, // 14: envoy.extensions.common.aws.v3.IAMRolesAnywhereCredentialProvider.session_duration:type_name -> google.protobuf.Duration
	11, // 15: envoy.extensions.common.aws.v3.AssumeRoleCredentialProvider.session_duration:type_name -> google.protobuf.Duration
	0,  // 16: envoy.extensions.common.aws.v3.AssumeRoleCredentialProvider.credential_provider:type_name -> envoy.extensions.common.aws.v3.AwsCredentialProvider
	17, // [17:17] is the sub-list for method output_type
	17, // [17:17] is the sub-list for method input_type
	17, // [17:17] is the sub-list for extension type_name
	17, // [17:17] is the sub-list for extension extendee
	0,  // [0:17] is the sub-list for field type_name
}

func init() { file_envoy_extensions_common_aws_v3_credential_provider_proto_init() }
func file_envoy_extensions_common_aws_v3_credential_provider_proto_init() {
	if File_envoy_extensions_common_aws_v3_credential_provider_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_envoy_extensions_common_aws_v3_credential_provider_proto_rawDesc), len(file_envoy_extensions_common_aws_v3_credential_provider_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   10,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_envoy_extensions_common_aws_v3_credential_provider_proto_goTypes,
		DependencyIndexes: file_envoy_extensions_common_aws_v3_credential_provider_proto_depIdxs,
		MessageInfos:      file_envoy_extensions_common_aws_v3_credential_provider_proto_msgTypes,
	}.Build()
	File_envoy_extensions_common_aws_v3_credential_provider_proto = out.File
	file_envoy_extensions_common_aws_v3_credential_provider_proto_goTypes = nil
	file_envoy_extensions_common_aws_v3_credential_provider_proto_depIdxs = nil
}
