v1alpha1

package
v0.49.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 2, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the acmpca v1alpha1 API group +kubebuilder:object:generate=true +groupName=acmpca.aws.crossplane.io +versionName=v1alpha1

Index

Constants

View Source
const (
	Group   = "acmpca.aws.crossplane.io"
	Version = "v1alpha1"
)

Package type metadata.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
)
View Source
var (
	CertificateAuthorityKind             = reflect.TypeOf(CertificateAuthority{}).Name()
	CertificateAuthorityGroupKind        = schema.GroupKind{Group: Group, Kind: CertificateAuthorityKind}.String()
	CertificateAuthorityKindAPIVersion   = CertificateAuthorityKind + "." + SchemeGroupVersion.String()
	CertificateAuthorityGroupVersionKind = SchemeGroupVersion.WithKind(CertificateAuthorityKind)
)

CertificateAuthority type metadata.

View Source
var (
	CertificateAuthorityPermissionKind             = reflect.TypeOf(CertificateAuthorityPermission{}).Name()
	CertificateAuthorityPermissionGroupKind        = schema.GroupKind{Group: Group, Kind: CertificateAuthorityPermissionKind}.String()
	CertificateAuthorityPermissionKindAPIVersion   = CertificateAuthorityPermissionKind + "." + SchemeGroupVersion.String()
	CertificateAuthorityPermissionGroupVersionKind = SchemeGroupVersion.WithKind(CertificateAuthorityPermissionKind)
)

CertificateAuthorityPermission type metadata.

Functions

This section is empty.

Types

type CertificateAuthority

type CertificateAuthority struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   CertificateAuthoritySpec   `json:"spec"`
	Status CertificateAuthorityStatus `json:"status,omitempty"`
}

CertificateAuthority is a managed resource that represents an AWS CertificateAuthority Manager. +kubebuilder:printcolumn:name="TYPE",type="string",JSONPath=".spec.forProvider.type" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".spec.forProvider.status" +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,aws} +kubebuilder:deprecatedversion:warning="Please use v1beta1 version of this resource that has identical schema." Deprecated: Please use v1beta1 version of this resource.

func (*CertificateAuthority) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateAuthority.

func (*CertificateAuthority) DeepCopyInto

func (in *CertificateAuthority) DeepCopyInto(out *CertificateAuthority)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CertificateAuthority) DeepCopyObject

func (in *CertificateAuthority) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CertificateAuthority) GetCondition

func (mg *CertificateAuthority) GetCondition(ct xpv1.ConditionType) xpv1.Condition

GetCondition of this CertificateAuthority.

func (*CertificateAuthority) GetDeletionPolicy

func (mg *CertificateAuthority) GetDeletionPolicy() xpv1.DeletionPolicy

GetDeletionPolicy of this CertificateAuthority.

func (*CertificateAuthority) GetManagementPolicies added in v0.43.0

func (mg *CertificateAuthority) GetManagementPolicies() xpv1.ManagementPolicies

GetManagementPolicies of this CertificateAuthority.

func (*CertificateAuthority) GetProviderConfigReference

func (mg *CertificateAuthority) GetProviderConfigReference() *xpv1.Reference

GetProviderConfigReference of this CertificateAuthority.

func (*CertificateAuthority) GetPublishConnectionDetailsTo

func (mg *CertificateAuthority) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo

GetPublishConnectionDetailsTo of this CertificateAuthority.

func (*CertificateAuthority) GetWriteConnectionSecretToReference

func (mg *CertificateAuthority) GetWriteConnectionSecretToReference() *xpv1.SecretReference

GetWriteConnectionSecretToReference of this CertificateAuthority.

func (*CertificateAuthority) SetConditions

func (mg *CertificateAuthority) SetConditions(c ...xpv1.Condition)

SetConditions of this CertificateAuthority.

func (*CertificateAuthority) SetDeletionPolicy

func (mg *CertificateAuthority) SetDeletionPolicy(r xpv1.DeletionPolicy)

SetDeletionPolicy of this CertificateAuthority.

func (*CertificateAuthority) SetManagementPolicies added in v0.43.0

func (mg *CertificateAuthority) SetManagementPolicies(r xpv1.ManagementPolicies)

SetManagementPolicies of this CertificateAuthority.

func (*CertificateAuthority) SetProviderConfigReference

func (mg *CertificateAuthority) SetProviderConfigReference(r *xpv1.Reference)

SetProviderConfigReference of this CertificateAuthority.

func (*CertificateAuthority) SetPublishConnectionDetailsTo

func (mg *CertificateAuthority) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)

SetPublishConnectionDetailsTo of this CertificateAuthority.

func (*CertificateAuthority) SetWriteConnectionSecretToReference

func (mg *CertificateAuthority) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)

SetWriteConnectionSecretToReference of this CertificateAuthority.

type CertificateAuthorityConfiguration

type CertificateAuthorityConfiguration struct {

	// Type of the public key algorithm
	// +kubebuilder:validation:Enum=RSA_2048;EC_secp384r1;EC_prime256v1;RSA_4096
	KeyAlgorithm string `json:"keyAlgorithm"`

	// Algorithm that private CA uses to sign certificate requests
	// +kubebuilder:validation:Enum=SHA512WITHECDSA;SHA256WITHECDSA;SHA384WITHECDSA;SHA512WITHRSA;SHA256WITHRSA;SHA384WITHRSA
	SigningAlgorithm string `json:"signingAlgorithm"`

	// Subject is information of Certificate Authority
	Subject Subject `json:"subject"`
}

CertificateAuthorityConfiguration is

func (*CertificateAuthorityConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateAuthorityConfiguration.

func (*CertificateAuthorityConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CertificateAuthorityExternalStatus

type CertificateAuthorityExternalStatus struct {
	// String that contains the ARN of the issued certificate Authority
	CertificateAuthorityARN string `json:"certificateAuthorityARN,omitempty"`

	// Serial of the Certificate Authority
	Serial string `json:"serial,omitempty"`

	// Status is the current status of the CertificateAuthority.
	Status string `json:"status,omitempty"`
}

CertificateAuthorityExternalStatus keeps the state of external resource

func (*CertificateAuthorityExternalStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateAuthorityExternalStatus.

func (*CertificateAuthorityExternalStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CertificateAuthorityList

type CertificateAuthorityList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CertificateAuthority `json:"items"`
}

CertificateAuthorityList contains a list of CertificateAuthority +kubebuilder:deprecatedversion:warning="Please use v1beta1 version of this resource that has identical schema." Deprecated: Please use v1beta1 version of this resource.

func (*CertificateAuthorityList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateAuthorityList.

func (*CertificateAuthorityList) DeepCopyInto

func (in *CertificateAuthorityList) DeepCopyInto(out *CertificateAuthorityList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CertificateAuthorityList) DeepCopyObject

func (in *CertificateAuthorityList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CertificateAuthorityList) GetItems

func (l *CertificateAuthorityList) GetItems() []resource.Managed

GetItems of this CertificateAuthorityList.

type CertificateAuthorityParameters

type CertificateAuthorityParameters struct {
	// Region is the region you'd like your CertificateAuthority to be created in.
	Region string `json:"region"`

	// Type of the certificate authority
	// +kubebuilder:validation:Enum=ROOT;SUBORDINATE
	Type string `json:"type"`

	// RevocationConfiguration to associate with the certificateAuthority.
	// +optional
	RevocationConfiguration *RevocationConfiguration `json:"revocationConfiguration,omitempty"`

	// CertificateAuthorityConfiguration to associate with the certificateAuthority.
	CertificateAuthorityConfiguration CertificateAuthorityConfiguration `json:"certificateAuthorityConfiguration"`

	// The number of days to make a CA restorable after it has been deleted
	// +optional
	PermanentDeletionTimeInDays *int32 `json:"permanentDeletionTimeInDays,omitempty"`

	// Status of the certificate authority.
	// This value cannot be configured at creation, but can be updated to set a
	// CA to ACTIVE or DISABLED.
	// +optional
	// +kubebuilder:validation:Enum=ACTIVE;DISABLED
	Status *string `json:"status,omitempty"`

	// One or more resource tags to associate with the certificateAuthority.
	Tags []Tag `json:"tags"`
}

CertificateAuthorityParameters defines the desired state of an AWS CertificateAuthority.

func (*CertificateAuthorityParameters) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateAuthorityParameters.

func (*CertificateAuthorityParameters) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CertificateAuthorityPermission

type CertificateAuthorityPermission struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   CertificateAuthorityPermissionSpec   `json:"spec"`
	Status CertificateAuthorityPermissionStatus `json:"status,omitempty"`
}

CertificateAuthorityPermission is a managed resource that represents an AWS CertificateAuthorityPermission Manager. +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,aws}

func (*CertificateAuthorityPermission) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CertificateAuthorityPermission) DeepCopyObject

func (in *CertificateAuthorityPermission) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CertificateAuthorityPermission) GetCondition

GetCondition of this CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) GetDeletionPolicy

func (mg *CertificateAuthorityPermission) GetDeletionPolicy() xpv1.DeletionPolicy

GetDeletionPolicy of this CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) GetManagementPolicies added in v0.43.0

func (mg *CertificateAuthorityPermission) GetManagementPolicies() xpv1.ManagementPolicies

GetManagementPolicies of this CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) GetProviderConfigReference

func (mg *CertificateAuthorityPermission) GetProviderConfigReference() *xpv1.Reference

GetProviderConfigReference of this CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) GetPublishConnectionDetailsTo

func (mg *CertificateAuthorityPermission) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo

GetPublishConnectionDetailsTo of this CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) GetWriteConnectionSecretToReference

func (mg *CertificateAuthorityPermission) GetWriteConnectionSecretToReference() *xpv1.SecretReference

GetWriteConnectionSecretToReference of this CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) ResolveReferences

func (mg *CertificateAuthorityPermission) ResolveReferences(ctx context.Context, c client.Reader) error

ResolveReferences of this CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) SetConditions

func (mg *CertificateAuthorityPermission) SetConditions(c ...xpv1.Condition)

SetConditions of this CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) SetDeletionPolicy

func (mg *CertificateAuthorityPermission) SetDeletionPolicy(r xpv1.DeletionPolicy)

SetDeletionPolicy of this CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) SetManagementPolicies added in v0.43.0

func (mg *CertificateAuthorityPermission) SetManagementPolicies(r xpv1.ManagementPolicies)

SetManagementPolicies of this CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) SetProviderConfigReference

func (mg *CertificateAuthorityPermission) SetProviderConfigReference(r *xpv1.Reference)

SetProviderConfigReference of this CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) SetPublishConnectionDetailsTo

func (mg *CertificateAuthorityPermission) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)

SetPublishConnectionDetailsTo of this CertificateAuthorityPermission.

func (*CertificateAuthorityPermission) SetWriteConnectionSecretToReference

func (mg *CertificateAuthorityPermission) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)

SetWriteConnectionSecretToReference of this CertificateAuthorityPermission.

type CertificateAuthorityPermissionList

type CertificateAuthorityPermissionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CertificateAuthorityPermission `json:"items"`
}

CertificateAuthorityPermissionList contains a list of CertificateAuthorityPermission

func (*CertificateAuthorityPermissionList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateAuthorityPermissionList.

func (*CertificateAuthorityPermissionList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CertificateAuthorityPermissionList) DeepCopyObject

func (in *CertificateAuthorityPermissionList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CertificateAuthorityPermissionList) GetItems

GetItems of this CertificateAuthorityPermissionList.

type CertificateAuthorityPermissionParameters

type CertificateAuthorityPermissionParameters struct {

	// Region is the region of CertificateAuthorityPermission.
	Region string `json:"region"`

	// The Amazon Resource Name (ARN) of the private certificate authority (CA)that will be used to issue the certificate.
	// +immutable
	// +crossplane:generate:reference:type=CertificateAuthority
	CertificateAuthorityARN *string `json:"certificateAuthorityARN,omitempty"`

	// CertificateAuthorityARNRef references an CertificateAuthority to retrieve its Arn
	// +optional
	// +immutable
	CertificateAuthorityARNRef *xpv1.Reference `json:"certificateAuthorityARNRef,omitempty"`

	// CertificateAuthorityARNSelector selects a reference to an CertificateAuthority to retrieve its Arn
	// +optional
	// +immutable
	CertificateAuthorityARNSelector *xpv1.Selector `json:"certificateAuthorityARNSelector,omitempty"`

	// The actions that the specified AWS service principal can use.
	// +optional
	// +immutable
	Actions []string `json:"actions,omitempty"`

	// The AWS service or identity that receives the permission. At this
	// time, the only valid principal is acm.amazonaws.com.
	// +immutable
	// +kubebuilder:default:=acm.amazonaws.com
	Principal string `json:"principal"`

	// Calling Account ID
	// +optional
	// +immutable
	SourceAccount *string `json:"sourceAccount,omitempty"`
}

CertificateAuthorityPermissionParameters defines the desired state of an AWS CertificateAuthority.

func (*CertificateAuthorityPermissionParameters) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateAuthorityPermissionParameters.

func (*CertificateAuthorityPermissionParameters) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CertificateAuthorityPermissionSpec

type CertificateAuthorityPermissionSpec struct {
	xpv1.ResourceSpec `json:",inline"`
	ForProvider       CertificateAuthorityPermissionParameters `json:"forProvider"`
}

CertificateAuthorityPermissionSpec defines the desired state of CertificateAuthorityPermission

func (*CertificateAuthorityPermissionSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateAuthorityPermissionSpec.

func (*CertificateAuthorityPermissionSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CertificateAuthorityPermissionStatus

type CertificateAuthorityPermissionStatus struct {
	xpv1.ResourceStatus `json:",inline"`
}

An CertificateAuthorityPermissionStatus represents the observed state of an Certificate Authority Permission manager.

func (*CertificateAuthorityPermissionStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateAuthorityPermissionStatus.

func (*CertificateAuthorityPermissionStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CertificateAuthoritySpec

type CertificateAuthoritySpec struct {
	xpv1.ResourceSpec `json:",inline"`
	ForProvider       CertificateAuthorityParameters `json:"forProvider"`
}

CertificateAuthoritySpec defines the desired state of CertificateAuthority

func (*CertificateAuthoritySpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateAuthoritySpec.

func (*CertificateAuthoritySpec) DeepCopyInto

func (in *CertificateAuthoritySpec) DeepCopyInto(out *CertificateAuthoritySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CertificateAuthorityStatus

type CertificateAuthorityStatus struct {
	xpv1.ResourceStatus `json:",inline"`
	AtProvider          CertificateAuthorityExternalStatus `json:"atProvider,omitempty"`
}

An CertificateAuthorityStatus represents the observed state of an CertificateAuthority manager.

func (*CertificateAuthorityStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateAuthorityStatus.

func (*CertificateAuthorityStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RevocationConfiguration

type RevocationConfiguration struct {

	// Boolean value that specifies certificate revocation
	Enabled bool `json:"enabled"`

	// Name of the S3 bucket that contains the CRL
	// +optional
	S3BucketName *string `json:"s3BucketName,omitempty"`

	// Alias for the CRL distribution point
	// +optional
	CustomCname *string `json:"customCname,omitempty"`

	// Number of days until a certificate expires
	// +optional
	ExpirationInDays *int32 `json:"expirationInDays,omitempty"`
}

RevocationConfiguration is configuration of the certificate revocation list

func (*RevocationConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RevocationConfiguration.

func (*RevocationConfiguration) DeepCopyInto

func (in *RevocationConfiguration) DeepCopyInto(out *RevocationConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Subject

type Subject struct {

	// Organization legal name
	// +immutable
	Organization string `json:"organization"`

	// Organization's subdivision or unit
	// +immutable
	OrganizationalUnit string `json:"organizationalUnit"`

	// Two-digit code that specifies the country
	// +immutable
	Country string `json:"country"`

	// State in which the subject of the certificate is located
	// +immutable
	State string `json:"state"`

	// The locality such as a city or town
	// +immutable
	Locality string `json:"locality"`

	// FQDN associated with the certificate subject
	// +immutable
	CommonName string `json:"commonName"`

	// Disambiguating information for the certificate subject.
	// +optional
	// +immutable
	DistinguishedNameQualifier *string `json:"distinguishedNameQualifier,omitempty"`

	// Typically a qualifier appended to the name of an individual
	// +optional
	// +immutable
	GenerationQualifier *string `json:"generationQualifier,omitempty"`

	// Concatenation of first letter of the GivenName, Middle name and SurName.
	// +optional
	// +immutable
	Initials *string `json:"initials,omitempty"`

	// First name
	// +optional
	// +immutable
	GivenName *string `json:"givenName,omitempty"`

	// Shortened version of a longer GivenName
	// +optional
	// +immutable
	Pseudonym *string `json:"pseudonym,omitempty"`

	// The certificate serial number.
	// +optional
	// +immutable
	SerialNumber *string `json:"serialNumber,omitempty"`

	// Surname
	// +optional
	// +immutable
	Surname *string `json:"surname,omitempty"`

	// Title
	// +optional
	// +immutable
	Title *string `json:"title,omitempty"`
}

Subject is

func (*Subject) DeepCopy

func (in *Subject) DeepCopy() *Subject

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.

func (*Subject) DeepCopyInto

func (in *Subject) DeepCopyInto(out *Subject)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Tag

type Tag struct {

	// The key name that can be used to look up or retrieve the associated value.
	Key string `json:"key"`

	// The value associated with this tag.
	Value string `json:"value"`
}

Tag represents user-provided metadata that can be associated

func (*Tag) DeepCopy

func (in *Tag) DeepCopy() *Tag

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tag.

func (*Tag) DeepCopyInto

func (in *Tag) DeepCopyInto(out *Tag)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL