in service/acm/deserializers.go [2285:2571]
func awsAwsjson11_deserializeDocumentCertificateDetail(v **types.CertificateDetail, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.CertificateDetail
if *v == nil {
sv = &types.CertificateDetail{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "CertificateArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
}
sv.CertificateArn = ptr.String(jtv)
}
case "CertificateAuthorityArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
}
sv.CertificateAuthorityArn = ptr.String(jtv)
}
case "CreatedAt":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.CreatedAt = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected TStamp to be a JSON Number, got %T instead", value)
}
}
case "DomainName":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected DomainNameString to be of type string, got %T instead", value)
}
sv.DomainName = ptr.String(jtv)
}
case "DomainValidationOptions":
if err := awsAwsjson11_deserializeDocumentDomainValidationList(&sv.DomainValidationOptions, value); err != nil {
return err
}
case "ExtendedKeyUsages":
if err := awsAwsjson11_deserializeDocumentExtendedKeyUsageList(&sv.ExtendedKeyUsages, value); err != nil {
return err
}
case "FailureReason":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected FailureReason to be of type string, got %T instead", value)
}
sv.FailureReason = types.FailureReason(jtv)
}
case "ImportedAt":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.ImportedAt = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected TStamp to be a JSON Number, got %T instead", value)
}
}
case "InUseBy":
if err := awsAwsjson11_deserializeDocumentInUseList(&sv.InUseBy, value); err != nil {
return err
}
case "IssuedAt":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.IssuedAt = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected TStamp to be a JSON Number, got %T instead", value)
}
}
case "Issuer":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Issuer = ptr.String(jtv)
}
case "KeyAlgorithm":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected KeyAlgorithm to be of type string, got %T instead", value)
}
sv.KeyAlgorithm = types.KeyAlgorithm(jtv)
}
case "KeyUsages":
if err := awsAwsjson11_deserializeDocumentKeyUsageList(&sv.KeyUsages, value); err != nil {
return err
}
case "ManagedBy":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected CertificateManagedBy to be of type string, got %T instead", value)
}
sv.ManagedBy = types.CertificateManagedBy(jtv)
}
case "NotAfter":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.NotAfter = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected TStamp to be a JSON Number, got %T instead", value)
}
}
case "NotBefore":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.NotBefore = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected TStamp to be a JSON Number, got %T instead", value)
}
}
case "Options":
if err := awsAwsjson11_deserializeDocumentCertificateOptions(&sv.Options, value); err != nil {
return err
}
case "RenewalEligibility":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RenewalEligibility to be of type string, got %T instead", value)
}
sv.RenewalEligibility = types.RenewalEligibility(jtv)
}
case "RenewalSummary":
if err := awsAwsjson11_deserializeDocumentRenewalSummary(&sv.RenewalSummary, value); err != nil {
return err
}
case "RevocationReason":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RevocationReason to be of type string, got %T instead", value)
}
sv.RevocationReason = types.RevocationReason(jtv)
}
case "RevokedAt":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.RevokedAt = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected TStamp to be a JSON Number, got %T instead", value)
}
}
case "Serial":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Serial = ptr.String(jtv)
}
case "SignatureAlgorithm":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.SignatureAlgorithm = ptr.String(jtv)
}
case "Status":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected CertificateStatus to be of type string, got %T instead", value)
}
sv.Status = types.CertificateStatus(jtv)
}
case "Subject":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Subject = ptr.String(jtv)
}
case "SubjectAlternativeNames":
if err := awsAwsjson11_deserializeDocumentDomainList(&sv.SubjectAlternativeNames, value); err != nil {
return err
}
case "Type":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected CertificateType to be of type string, got %T instead", value)
}
sv.Type = types.CertificateType(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}