ValidateConnectionDetail checks if the connection detail is logically valid.
(cd v1beta1.ConnectionDetail)
| 408 | |
| 409 | // ValidateConnectionDetail checks if the connection detail is logically valid. |
| 410 | func ValidateConnectionDetail(cd v1beta1.ConnectionDetail) *field.Error { |
| 411 | if cd.Type == "" { |
| 412 | return field.Required(field.NewPath("type"), "connection detail type is required") |
| 413 | } |
| 414 | if !cd.Type.IsValid() { |
| 415 | return field.Invalid(field.NewPath("type"), string(cd.Type), "unknown connection detail type") |
| 416 | } |
| 417 | if cd.Name == "" { |
| 418 | return field.Required(field.NewPath("name"), "name is required") |
| 419 | } |
| 420 | switch cd.Type { |
| 421 | case v1beta1.ConnectionDetailTypeFromValue: |
| 422 | if cd.Value == nil { |
| 423 | return field.Required(field.NewPath("value"), "value connection detail requires a value") |
| 424 | } |
| 425 | case v1beta1.ConnectionDetailTypeFromConnectionSecretKey: |
| 426 | if cd.FromConnectionSecretKey == nil { |
| 427 | return field.Required(field.NewPath("fromConnectionSecretKey"), "from connection secret key connection detail requires a key") |
| 428 | } |
| 429 | case v1beta1.ConnectionDetailTypeFromFieldPath: |
| 430 | if cd.FromFieldPath == nil { |
| 431 | return field.Required(field.NewPath("fromFieldPath"), "from field path connection detail requires a field path") |
| 432 | } |
| 433 | } |
| 434 | return nil |
| 435 | } |