k8s.io/apiserver@v0.31.1/pkg/cel/limits.go (about)

     1  /*
     2  Copyright 2022 The Kubernetes Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  package cel
    18  
    19  import celconfig "k8s.io/apiserver/pkg/apis/cel"
    20  
    21  const (
    22  	// DefaultMaxRequestSizeBytes is the size of the largest request that will be accepted
    23  	DefaultMaxRequestSizeBytes = celconfig.MaxRequestSizeBytes
    24  
    25  	// MaxDurationSizeJSON
    26  	// OpenAPI duration strings follow RFC 3339, section 5.6 - see the comment on maxDatetimeSizeJSON
    27  	MaxDurationSizeJSON = 32
    28  	// MaxDatetimeSizeJSON
    29  	// OpenAPI datetime strings follow RFC 3339, section 5.6, and the longest possible
    30  	// such string is 9999-12-31T23:59:59.999999999Z, which has length 30 - we add 2
    31  	// to allow for quotation marks
    32  	MaxDatetimeSizeJSON = 32
    33  	// MinDurationSizeJSON
    34  	// Golang allows a string of 0 to be parsed as a duration, so that plus 2 to account for
    35  	// quotation marks makes 3
    36  	MinDurationSizeJSON = 3
    37  	// JSONDateSize is the size of a date serialized as part of a JSON object
    38  	// RFC 3339 dates require YYYY-MM-DD, and then we add 2 to allow for quotation marks
    39  	JSONDateSize = 12
    40  	// MinDatetimeSizeJSON is the minimal length of a datetime formatted as RFC 3339
    41  	// RFC 3339 datetimes require a full date (YYYY-MM-DD) and full time (HH:MM:SS), and we add 3 for
    42  	// quotation marks like always in addition to the capital T that separates the date and time
    43  	MinDatetimeSizeJSON = 21
    44  	// MinStringSize is the size of literal ""
    45  	MinStringSize = 2
    46  	// MinBoolSize is the length of literal true
    47  	MinBoolSize = 4
    48  	// MinNumberSize is the length of literal 0
    49  	MinNumberSize = 1
    50  
    51  	MaxNameFormatRegexSize = 128
    52  )