1/* 2Copyright 2019 The Kubernetes Authors. 3 4Licensed under the Apache License, Version 2.0 (the "License"); 5you may not use this file except in compliance with the License. 6You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10Unless required by applicable law or agreed to in writing, software 11distributed under the License is distributed on an "AS IS" BASIS, 12WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13See the License for the specific language governing permissions and 14limitations under the License. 15*/ 16 17package v1 18 19// TODO: Update this after a tag is created for interface fields in DeepCopy 20func (in *JSONSchemaProps) DeepCopy() *JSONSchemaProps { 21 if in == nil { 22 return nil 23 } 24 out := new(JSONSchemaProps) 25 *out = *in 26 27 if in.Ref != nil { 28 in, out := &in.Ref, &out.Ref 29 if *in == nil { 30 *out = nil 31 } else { 32 *out = new(string) 33 **out = **in 34 } 35 } 36 37 if in.Maximum != nil { 38 in, out := &in.Maximum, &out.Maximum 39 if *in == nil { 40 *out = nil 41 } else { 42 *out = new(float64) 43 **out = **in 44 } 45 } 46 47 if in.Minimum != nil { 48 in, out := &in.Minimum, &out.Minimum 49 if *in == nil { 50 *out = nil 51 } else { 52 *out = new(float64) 53 **out = **in 54 } 55 } 56 57 if in.MaxLength != nil { 58 in, out := &in.MaxLength, &out.MaxLength 59 if *in == nil { 60 *out = nil 61 } else { 62 *out = new(int64) 63 **out = **in 64 } 65 } 66 67 if in.MinLength != nil { 68 in, out := &in.MinLength, &out.MinLength 69 if *in == nil { 70 *out = nil 71 } else { 72 *out = new(int64) 73 **out = **in 74 } 75 } 76 if in.MaxItems != nil { 77 in, out := &in.MaxItems, &out.MaxItems 78 if *in == nil { 79 *out = nil 80 } else { 81 *out = new(int64) 82 **out = **in 83 } 84 } 85 86 if in.MinItems != nil { 87 in, out := &in.MinItems, &out.MinItems 88 if *in == nil { 89 *out = nil 90 } else { 91 *out = new(int64) 92 **out = **in 93 } 94 } 95 96 if in.MultipleOf != nil { 97 in, out := &in.MultipleOf, &out.MultipleOf 98 if *in == nil { 99 *out = nil 100 } else { 101 *out = new(float64) 102 **out = **in 103 } 104 } 105 106 if in.MaxProperties != nil { 107 in, out := &in.MaxProperties, &out.MaxProperties 108 if *in == nil { 109 *out = nil 110 } else { 111 *out = new(int64) 112 **out = **in 113 } 114 } 115 116 if in.MinProperties != nil { 117 in, out := &in.MinProperties, &out.MinProperties 118 if *in == nil { 119 *out = nil 120 } else { 121 *out = new(int64) 122 **out = **in 123 } 124 } 125 126 if in.Required != nil { 127 in, out := &in.Required, &out.Required 128 *out = make([]string, len(*in)) 129 copy(*out, *in) 130 } 131 132 if in.Items != nil { 133 in, out := &in.Items, &out.Items 134 if *in == nil { 135 *out = nil 136 } else { 137 *out = new(JSONSchemaPropsOrArray) 138 (*in).DeepCopyInto(*out) 139 } 140 } 141 142 if in.AllOf != nil { 143 in, out := &in.AllOf, &out.AllOf 144 *out = make([]JSONSchemaProps, len(*in)) 145 for i := range *in { 146 (*in)[i].DeepCopyInto(&(*out)[i]) 147 } 148 } 149 150 if in.OneOf != nil { 151 in, out := &in.OneOf, &out.OneOf 152 *out = make([]JSONSchemaProps, len(*in)) 153 for i := range *in { 154 (*in)[i].DeepCopyInto(&(*out)[i]) 155 } 156 } 157 if in.AnyOf != nil { 158 in, out := &in.AnyOf, &out.AnyOf 159 *out = make([]JSONSchemaProps, len(*in)) 160 for i := range *in { 161 (*in)[i].DeepCopyInto(&(*out)[i]) 162 } 163 } 164 165 if in.Not != nil { 166 in, out := &in.Not, &out.Not 167 if *in == nil { 168 *out = nil 169 } else { 170 *out = new(JSONSchemaProps) 171 (*in).DeepCopyInto(*out) 172 } 173 } 174 175 if in.Properties != nil { 176 in, out := &in.Properties, &out.Properties 177 *out = make(map[string]JSONSchemaProps, len(*in)) 178 for key, val := range *in { 179 (*out)[key] = *val.DeepCopy() 180 } 181 } 182 183 if in.AdditionalProperties != nil { 184 in, out := &in.AdditionalProperties, &out.AdditionalProperties 185 if *in == nil { 186 *out = nil 187 } else { 188 *out = new(JSONSchemaPropsOrBool) 189 (*in).DeepCopyInto(*out) 190 } 191 } 192 193 if in.PatternProperties != nil { 194 in, out := &in.PatternProperties, &out.PatternProperties 195 *out = make(map[string]JSONSchemaProps, len(*in)) 196 for key, val := range *in { 197 (*out)[key] = *val.DeepCopy() 198 } 199 } 200 201 if in.Dependencies != nil { 202 in, out := &in.Dependencies, &out.Dependencies 203 *out = make(JSONSchemaDependencies, len(*in)) 204 for key, val := range *in { 205 (*out)[key] = *val.DeepCopy() 206 } 207 } 208 209 if in.AdditionalItems != nil { 210 in, out := &in.AdditionalItems, &out.AdditionalItems 211 if *in == nil { 212 *out = nil 213 } else { 214 *out = new(JSONSchemaPropsOrBool) 215 (*in).DeepCopyInto(*out) 216 } 217 } 218 219 if in.Definitions != nil { 220 in, out := &in.Definitions, &out.Definitions 221 *out = make(JSONSchemaDefinitions, len(*in)) 222 for key, val := range *in { 223 (*out)[key] = *val.DeepCopy() 224 } 225 } 226 227 if in.ExternalDocs != nil { 228 in, out := &in.ExternalDocs, &out.ExternalDocs 229 if *in == nil { 230 *out = nil 231 } else { 232 *out = new(ExternalDocumentation) 233 (*in).DeepCopyInto(*out) 234 } 235 } 236 237 if in.XPreserveUnknownFields != nil { 238 in, out := &in.XPreserveUnknownFields, &out.XPreserveUnknownFields 239 if *in == nil { 240 *out = nil 241 } else { 242 *out = new(bool) 243 **out = **in 244 } 245 } 246 247 return out 248} 249