Documentation ¶
Overview ¶
Package v1 is a generated protocol buffer package.
It is generated from these files:
k8s.io/kubernetes/pkg/apis/batch/v1/generated.proto
It has these top-level messages:
Job JobCondition JobList JobSpec JobStatus LabelSelector LabelSelectorRequirement
Index ¶
- Constants
- Variables
- func Convert_batch_JobCondition_To_v1_JobCondition(in *batch.JobCondition, out *JobCondition, s conversion.Scope) error
- func Convert_batch_JobList_To_v1_JobList(in *batch.JobList, out *JobList, s conversion.Scope) error
- func Convert_batch_JobSpec_To_v1_JobSpec(in *batch.JobSpec, out *JobSpec, s conversion.Scope) error
- func Convert_batch_JobStatus_To_v1_JobStatus(in *batch.JobStatus, out *JobStatus, s conversion.Scope) error
- func Convert_batch_Job_To_v1_Job(in *batch.Job, out *Job, s conversion.Scope) error
- func Convert_unversioned_LabelSelectorRequirement_To_v1_LabelSelectorRequirement(in *unversioned.LabelSelectorRequirement, out *LabelSelectorRequirement, ...) error
- func Convert_unversioned_LabelSelector_To_v1_LabelSelector(in *unversioned.LabelSelector, out *LabelSelector, s conversion.Scope) error
- func Convert_v1_JobCondition_To_batch_JobCondition(in *JobCondition, out *batch.JobCondition, s conversion.Scope) error
- func Convert_v1_JobList_To_batch_JobList(in *JobList, out *batch.JobList, s conversion.Scope) error
- func Convert_v1_JobSpec_To_batch_JobSpec(in *JobSpec, out *batch.JobSpec, s conversion.Scope) error
- func Convert_v1_JobStatus_To_batch_JobStatus(in *JobStatus, out *batch.JobStatus, s conversion.Scope) error
- func Convert_v1_Job_To_batch_Job(in *Job, out *batch.Job, s conversion.Scope) error
- func Convert_v1_LabelSelectorRequirement_To_unversioned_LabelSelectorRequirement(in *LabelSelectorRequirement, out *unversioned.LabelSelectorRequirement, ...) error
- func Convert_v1_LabelSelector_To_unversioned_LabelSelector(in *LabelSelector, out *unversioned.LabelSelector, s conversion.Scope) error
- func DeepCopy_v1_Job(in interface{}, out interface{}, c *conversion.Cloner) error
- func DeepCopy_v1_JobCondition(in interface{}, out interface{}, c *conversion.Cloner) error
- func DeepCopy_v1_JobList(in interface{}, out interface{}, c *conversion.Cloner) error
- func DeepCopy_v1_JobSpec(in interface{}, out interface{}, c *conversion.Cloner) error
- func DeepCopy_v1_JobStatus(in interface{}, out interface{}, c *conversion.Cloner) error
- func DeepCopy_v1_LabelSelector(in interface{}, out interface{}, c *conversion.Cloner) error
- func DeepCopy_v1_LabelSelectorRequirement(in interface{}, out interface{}, c *conversion.Cloner) error
- func RegisterConversions(scheme *runtime.Scheme) error
- func RegisterDeepCopies(scheme *runtime.Scheme) error
- func SetDefaults_Job(obj *Job)
- type Job
- func (x *Job) CodecDecodeSelf(d *codec1978.Decoder)
- func (x *Job) CodecEncodeSelf(e *codec1978.Encoder)
- func (*Job) Descriptor() ([]byte, []int)
- func (m *Job) Marshal() (data []byte, err error)
- func (m *Job) MarshalTo(data []byte) (int, error)
- func (*Job) ProtoMessage()
- func (m *Job) Reset()
- func (m *Job) Size() (n int)
- func (this *Job) String() string
- func (Job) SwaggerDoc() map[string]string
- func (m *Job) Unmarshal(data []byte) error
- type JobCondition
- func (x *JobCondition) CodecDecodeSelf(d *codec1978.Decoder)
- func (x *JobCondition) CodecEncodeSelf(e *codec1978.Encoder)
- func (*JobCondition) Descriptor() ([]byte, []int)
- func (m *JobCondition) Marshal() (data []byte, err error)
- func (m *JobCondition) MarshalTo(data []byte) (int, error)
- func (*JobCondition) ProtoMessage()
- func (m *JobCondition) Reset()
- func (m *JobCondition) Size() (n int)
- func (this *JobCondition) String() string
- func (JobCondition) SwaggerDoc() map[string]string
- func (m *JobCondition) Unmarshal(data []byte) error
- type JobConditionType
- type JobList
- func (x *JobList) CodecDecodeSelf(d *codec1978.Decoder)
- func (x *JobList) CodecEncodeSelf(e *codec1978.Encoder)
- func (*JobList) Descriptor() ([]byte, []int)
- func (m *JobList) Marshal() (data []byte, err error)
- func (m *JobList) MarshalTo(data []byte) (int, error)
- func (*JobList) ProtoMessage()
- func (m *JobList) Reset()
- func (m *JobList) Size() (n int)
- func (this *JobList) String() string
- func (JobList) SwaggerDoc() map[string]string
- func (m *JobList) Unmarshal(data []byte) error
- type JobSpec
- func (x *JobSpec) CodecDecodeSelf(d *codec1978.Decoder)
- func (x *JobSpec) CodecEncodeSelf(e *codec1978.Encoder)
- func (*JobSpec) Descriptor() ([]byte, []int)
- func (m *JobSpec) Marshal() (data []byte, err error)
- func (m *JobSpec) MarshalTo(data []byte) (int, error)
- func (*JobSpec) ProtoMessage()
- func (m *JobSpec) Reset()
- func (m *JobSpec) Size() (n int)
- func (this *JobSpec) String() string
- func (JobSpec) SwaggerDoc() map[string]string
- func (m *JobSpec) Unmarshal(data []byte) error
- type JobStatus
- func (x *JobStatus) CodecDecodeSelf(d *codec1978.Decoder)
- func (x *JobStatus) CodecEncodeSelf(e *codec1978.Encoder)
- func (*JobStatus) Descriptor() ([]byte, []int)
- func (m *JobStatus) Marshal() (data []byte, err error)
- func (m *JobStatus) MarshalTo(data []byte) (int, error)
- func (*JobStatus) ProtoMessage()
- func (m *JobStatus) Reset()
- func (m *JobStatus) Size() (n int)
- func (this *JobStatus) String() string
- func (JobStatus) SwaggerDoc() map[string]string
- func (m *JobStatus) Unmarshal(data []byte) error
- type LabelSelector
- func (x *LabelSelector) CodecDecodeSelf(d *codec1978.Decoder)
- func (x *LabelSelector) CodecEncodeSelf(e *codec1978.Encoder)
- func (*LabelSelector) Descriptor() ([]byte, []int)
- func (m *LabelSelector) Marshal() (data []byte, err error)
- func (m *LabelSelector) MarshalTo(data []byte) (int, error)
- func (*LabelSelector) ProtoMessage()
- func (m *LabelSelector) Reset()
- func (m *LabelSelector) Size() (n int)
- func (this *LabelSelector) String() string
- func (LabelSelector) SwaggerDoc() map[string]string
- func (m *LabelSelector) Unmarshal(data []byte) error
- type LabelSelectorOperator
- type LabelSelectorRequirement
- func (x *LabelSelectorRequirement) CodecDecodeSelf(d *codec1978.Decoder)
- func (x *LabelSelectorRequirement) CodecEncodeSelf(e *codec1978.Encoder)
- func (*LabelSelectorRequirement) Descriptor() ([]byte, []int)
- func (m *LabelSelectorRequirement) Marshal() (data []byte, err error)
- func (m *LabelSelectorRequirement) MarshalTo(data []byte) (int, error)
- func (*LabelSelectorRequirement) ProtoMessage()
- func (m *LabelSelectorRequirement) Reset()
- func (m *LabelSelectorRequirement) Size() (n int)
- func (this *LabelSelectorRequirement) String() string
- func (LabelSelectorRequirement) SwaggerDoc() map[string]string
- func (m *LabelSelectorRequirement) Unmarshal(data []byte) error
Constants ¶
const GroupName = "batch"
GroupName is the group name use in this package
Variables ¶
var ( ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") )
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, addDefaultingFuncs, addConversionFuncs) AddToScheme = SchemeBuilder.AddToScheme )
var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1"}
SchemeGroupVersion is group version used to register these objects
Functions ¶
func Convert_batch_JobCondition_To_v1_JobCondition ¶
func Convert_batch_JobCondition_To_v1_JobCondition(in *batch.JobCondition, out *JobCondition, s conversion.Scope) error
func Convert_unversioned_LabelSelectorRequirement_To_v1_LabelSelectorRequirement ¶
func Convert_unversioned_LabelSelectorRequirement_To_v1_LabelSelectorRequirement(in *unversioned.LabelSelectorRequirement, out *LabelSelectorRequirement, s conversion.Scope) error
func Convert_unversioned_LabelSelector_To_v1_LabelSelector ¶
func Convert_unversioned_LabelSelector_To_v1_LabelSelector(in *unversioned.LabelSelector, out *LabelSelector, s conversion.Scope) error
func Convert_v1_JobCondition_To_batch_JobCondition ¶
func Convert_v1_JobCondition_To_batch_JobCondition(in *JobCondition, out *batch.JobCondition, s conversion.Scope) error
func Convert_v1_LabelSelectorRequirement_To_unversioned_LabelSelectorRequirement ¶
func Convert_v1_LabelSelectorRequirement_To_unversioned_LabelSelectorRequirement(in *LabelSelectorRequirement, out *unversioned.LabelSelectorRequirement, s conversion.Scope) error
func Convert_v1_LabelSelector_To_unversioned_LabelSelector ¶
func Convert_v1_LabelSelector_To_unversioned_LabelSelector(in *LabelSelector, out *unversioned.LabelSelector, s conversion.Scope) error
func DeepCopy_v1_Job ¶
func DeepCopy_v1_Job(in interface{}, out interface{}, c *conversion.Cloner) error
func DeepCopy_v1_JobCondition ¶
func DeepCopy_v1_JobCondition(in interface{}, out interface{}, c *conversion.Cloner) error
func DeepCopy_v1_JobList ¶
func DeepCopy_v1_JobList(in interface{}, out interface{}, c *conversion.Cloner) error
func DeepCopy_v1_JobSpec ¶
func DeepCopy_v1_JobSpec(in interface{}, out interface{}, c *conversion.Cloner) error
func DeepCopy_v1_JobStatus ¶
func DeepCopy_v1_JobStatus(in interface{}, out interface{}, c *conversion.Cloner) error
func DeepCopy_v1_LabelSelector ¶
func DeepCopy_v1_LabelSelector(in interface{}, out interface{}, c *conversion.Cloner) error
func DeepCopy_v1_LabelSelectorRequirement ¶
func DeepCopy_v1_LabelSelectorRequirement(in interface{}, out interface{}, c *conversion.Cloner) error
func RegisterConversions ¶
RegisterConversions adds conversion functions to the given scheme. Public to allow building arbitrary schemes.
func RegisterDeepCopies ¶
RegisterDeepCopies adds deep-copy functions to the given scheme. Public to allow building arbitrary schemes.
func SetDefaults_Job ¶
func SetDefaults_Job(obj *Job)
Types ¶
type Job ¶
type Job struct { unversioned.TypeMeta `json:",inline"` // Standard object's metadata. // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata v1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec is a structure defining the expected behavior of a job. // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status Spec JobSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Status is a structure describing current status of a job. // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status Status JobStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` }
Job represents the configuration of a single job.
func (*Job) CodecDecodeSelf ¶
func (*Job) CodecEncodeSelf ¶
func (*Job) Descriptor ¶
func (*Job) ProtoMessage ¶
func (*Job) ProtoMessage()
func (Job) SwaggerDoc ¶
type JobCondition ¶
type JobCondition struct { // Type of job condition, Complete or Failed. Type JobConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=JobConditionType"` // Status of the condition, one of True, False, Unknown. Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/kubernetes/pkg/api/v1.ConditionStatus"` // Last time the condition was checked. LastProbeTime unversioned.Time `json:"lastProbeTime,omitempty" protobuf:"bytes,3,opt,name=lastProbeTime"` // Last time the condition transit from one status to another. LastTransitionTime unversioned.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,4,opt,name=lastTransitionTime"` // (brief) reason for the condition's last transition. Reason string `json:"reason,omitempty" protobuf:"bytes,5,opt,name=reason"` // Human readable message indicating details about last transition. Message string `json:"message,omitempty" protobuf:"bytes,6,opt,name=message"` }
JobCondition describes current state of a job.
func (*JobCondition) CodecDecodeSelf ¶
func (x *JobCondition) CodecDecodeSelf(d *codec1978.Decoder)
func (*JobCondition) CodecEncodeSelf ¶
func (x *JobCondition) CodecEncodeSelf(e *codec1978.Encoder)
func (*JobCondition) Descriptor ¶
func (*JobCondition) Descriptor() ([]byte, []int)
func (*JobCondition) Marshal ¶
func (m *JobCondition) Marshal() (data []byte, err error)
func (*JobCondition) ProtoMessage ¶
func (*JobCondition) ProtoMessage()
func (*JobCondition) Reset ¶
func (m *JobCondition) Reset()
func (*JobCondition) Size ¶
func (m *JobCondition) Size() (n int)
func (*JobCondition) String ¶
func (this *JobCondition) String() string
func (JobCondition) SwaggerDoc ¶
func (JobCondition) SwaggerDoc() map[string]string
func (*JobCondition) Unmarshal ¶
func (m *JobCondition) Unmarshal(data []byte) error
type JobConditionType ¶
type JobConditionType string
const ( // JobComplete means the job has completed its execution. JobComplete JobConditionType = "Complete" // JobFailed means the job has failed its execution. JobFailed JobConditionType = "Failed" )
These are valid conditions of a job.
func (*JobConditionType) CodecDecodeSelf ¶
func (x *JobConditionType) CodecDecodeSelf(d *codec1978.Decoder)
func (JobConditionType) CodecEncodeSelf ¶
func (x JobConditionType) CodecEncodeSelf(e *codec1978.Encoder)
type JobList ¶
type JobList struct { unversioned.TypeMeta `json:",inline"` // Standard list metadata // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata unversioned.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of Job. Items []Job `json:"items" protobuf:"bytes,2,rep,name=items"` }
JobList is a collection of jobs.
func (*JobList) CodecDecodeSelf ¶
func (*JobList) CodecEncodeSelf ¶
func (*JobList) Descriptor ¶
func (*JobList) ProtoMessage ¶
func (*JobList) ProtoMessage()
func (JobList) SwaggerDoc ¶
type JobSpec ¶
type JobSpec struct { // Parallelism specifies the maximum desired number of pods the job should // run at any given time. The actual number of pods running in steady state will // be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), // i.e. when the work left to do is less than max parallelism. // More info: http://kubernetes.io/docs/user-guide/jobs Parallelism *int32 `json:"parallelism,omitempty" protobuf:"varint,1,opt,name=parallelism"` // Completions specifies the desired number of successfully finished pods the // job should be run with. Setting to nil means that the success of any // pod signals the success of all pods, and allows parallelism to have any positive // value. Setting to 1 means that parallelism is limited to 1 and the success of that // pod signals the success of the job. // More info: http://kubernetes.io/docs/user-guide/jobs Completions *int32 `json:"completions,omitempty" protobuf:"varint,2,opt,name=completions"` // Optional duration in seconds relative to the startTime that the job may be active // before the system tries to terminate it; value must be positive integer ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty" protobuf:"varint,3,opt,name=activeDeadlineSeconds"` // Selector is a label query over pods that should match the pod count. // Normally, the system sets this field for you. // More info: http://kubernetes.io/docs/user-guide/labels#label-selectors Selector *LabelSelector `json:"selector,omitempty" protobuf:"bytes,4,opt,name=selector"` // ManualSelector controls generation of pod labels and pod selectors. // Leave `manualSelector` unset unless you are certain what you are doing. // When false or unset, the system pick labels unique to this job // and appends those labels to the pod template. When true, // the user is responsible for picking unique labels and specifying // the selector. Failure to pick a unique label may cause this // and other jobs to not function correctly. However, You may see // `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` // API. // More info: http://releases.k8s.io/HEAD/docs/design/selector-generation.md ManualSelector *bool `json:"manualSelector,omitempty" protobuf:"varint,5,opt,name=manualSelector"` // Template is the object that describes the pod that will be created when // executing a job. // More info: http://kubernetes.io/docs/user-guide/jobs Template v1.PodTemplateSpec `json:"template" protobuf:"bytes,6,opt,name=template"` }
JobSpec describes how the job execution will look like.
func (*JobSpec) CodecDecodeSelf ¶
func (*JobSpec) CodecEncodeSelf ¶
func (*JobSpec) Descriptor ¶
func (*JobSpec) ProtoMessage ¶
func (*JobSpec) ProtoMessage()
func (JobSpec) SwaggerDoc ¶
type JobStatus ¶
type JobStatus struct { // Conditions represent the latest available observations of an object's current state. // More info: http://kubernetes.io/docs/user-guide/jobs Conditions []JobCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` // StartTime represents time when the job was acknowledged by the Job Manager. // It is not guaranteed to be set in happens-before order across separate operations. // It is represented in RFC3339 form and is in UTC. StartTime *unversioned.Time `json:"startTime,omitempty" protobuf:"bytes,2,opt,name=startTime"` // CompletionTime represents time when the job was completed. It is not guaranteed to // be set in happens-before order across separate operations. // It is represented in RFC3339 form and is in UTC. CompletionTime *unversioned.Time `json:"completionTime,omitempty" protobuf:"bytes,3,opt,name=completionTime"` // Active is the number of actively running pods. Active int32 `json:"active,omitempty" protobuf:"varint,4,opt,name=active"` // Succeeded is the number of pods which reached Phase Succeeded. Succeeded int32 `json:"succeeded,omitempty" protobuf:"varint,5,opt,name=succeeded"` // Failed is the number of pods which reached Phase Failed. Failed int32 `json:"failed,omitempty" protobuf:"varint,6,opt,name=failed"` }
JobStatus represents the current state of a Job.
func (*JobStatus) CodecDecodeSelf ¶
func (*JobStatus) CodecEncodeSelf ¶
func (*JobStatus) Descriptor ¶
func (*JobStatus) ProtoMessage ¶
func (*JobStatus) ProtoMessage()
func (JobStatus) SwaggerDoc ¶
type LabelSelector ¶
type LabelSelector struct { // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels // map is equivalent to an element of matchExpressions, whose key field is "key", the // operator is "In", and the values array contains only "value". The requirements are ANDed. MatchLabels map[string]string `json:"matchLabels,omitempty" protobuf:"bytes,1,rep,name=matchLabels"` // matchExpressions is a list of label selector requirements. The requirements are ANDed. MatchExpressions []LabelSelectorRequirement `json:"matchExpressions,omitempty" protobuf:"bytes,2,rep,name=matchExpressions"` }
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
func (*LabelSelector) CodecDecodeSelf ¶
func (x *LabelSelector) CodecDecodeSelf(d *codec1978.Decoder)
func (*LabelSelector) CodecEncodeSelf ¶
func (x *LabelSelector) CodecEncodeSelf(e *codec1978.Encoder)
func (*LabelSelector) Descriptor ¶
func (*LabelSelector) Descriptor() ([]byte, []int)
func (*LabelSelector) Marshal ¶
func (m *LabelSelector) Marshal() (data []byte, err error)
func (*LabelSelector) ProtoMessage ¶
func (*LabelSelector) ProtoMessage()
func (*LabelSelector) Reset ¶
func (m *LabelSelector) Reset()
func (*LabelSelector) Size ¶
func (m *LabelSelector) Size() (n int)
func (*LabelSelector) String ¶
func (this *LabelSelector) String() string
func (LabelSelector) SwaggerDoc ¶
func (LabelSelector) SwaggerDoc() map[string]string
func (*LabelSelector) Unmarshal ¶
func (m *LabelSelector) Unmarshal(data []byte) error
type LabelSelectorOperator ¶
type LabelSelectorOperator string
A label selector operator is the set of operators that can be used in a selector requirement.
const ( LabelSelectorOpIn LabelSelectorOperator = "In" LabelSelectorOpNotIn LabelSelectorOperator = "NotIn" LabelSelectorOpExists LabelSelectorOperator = "Exists" LabelSelectorOpDoesNotExist LabelSelectorOperator = "DoesNotExist" )
func (*LabelSelectorOperator) CodecDecodeSelf ¶
func (x *LabelSelectorOperator) CodecDecodeSelf(d *codec1978.Decoder)
func (LabelSelectorOperator) CodecEncodeSelf ¶
func (x LabelSelectorOperator) CodecEncodeSelf(e *codec1978.Encoder)
type LabelSelectorRequirement ¶
type LabelSelectorRequirement struct { // key is the label key that the selector applies to. Key string `json:"key" patchStrategy:"merge" patchMergeKey:"key" protobuf:"bytes,1,opt,name=key"` // operator represents a key's relationship to a set of values. // Valid operators ard In, NotIn, Exists and DoesNotExist. Operator LabelSelectorOperator `json:"operator" protobuf:"bytes,2,opt,name=operator,casttype=LabelSelectorOperator"` // values is an array of string values. If the operator is In or NotIn, // the values array must be non-empty. If the operator is Exists or DoesNotExist, // the values array must be empty. This array is replaced during a strategic // merge patch. Values []string `json:"values,omitempty" protobuf:"bytes,3,rep,name=values"` }
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
func (*LabelSelectorRequirement) CodecDecodeSelf ¶
func (x *LabelSelectorRequirement) CodecDecodeSelf(d *codec1978.Decoder)
func (*LabelSelectorRequirement) CodecEncodeSelf ¶
func (x *LabelSelectorRequirement) CodecEncodeSelf(e *codec1978.Encoder)
func (*LabelSelectorRequirement) Descriptor ¶
func (*LabelSelectorRequirement) Descriptor() ([]byte, []int)
func (*LabelSelectorRequirement) Marshal ¶
func (m *LabelSelectorRequirement) Marshal() (data []byte, err error)
func (*LabelSelectorRequirement) MarshalTo ¶
func (m *LabelSelectorRequirement) MarshalTo(data []byte) (int, error)
func (*LabelSelectorRequirement) ProtoMessage ¶
func (*LabelSelectorRequirement) ProtoMessage()
func (*LabelSelectorRequirement) Reset ¶
func (m *LabelSelectorRequirement) Reset()
func (*LabelSelectorRequirement) Size ¶
func (m *LabelSelectorRequirement) Size() (n int)
func (*LabelSelectorRequirement) String ¶
func (this *LabelSelectorRequirement) String() string
func (LabelSelectorRequirement) SwaggerDoc ¶
func (LabelSelectorRequirement) SwaggerDoc() map[string]string
func (*LabelSelectorRequirement) Unmarshal ¶
func (m *LabelSelectorRequirement) Unmarshal(data []byte) error