Add retention option on bucket creation (#504)

This also deletes a bucket if it was created and an error occurred
This commit is contained in:
Cesar N
2020-12-11 10:22:25 -06:00
committed by GitHub
parent b495148a69
commit dd91c793e2
4 changed files with 52 additions and 0 deletions

View File

@@ -41,6 +41,9 @@ type MakeBucketRequest struct {
// quota
Quota *SetBucketQuota `json:"quota,omitempty"`
// retention
Retention *PutBucketRetentionRequest `json:"retention,omitempty"`
// versioning
Versioning bool `json:"versioning,omitempty"`
}
@@ -57,6 +60,10 @@ func (m *MakeBucketRequest) Validate(formats strfmt.Registry) error {
res = append(res, err)
}
if err := m.validateRetention(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
@@ -90,6 +97,24 @@ func (m *MakeBucketRequest) validateQuota(formats strfmt.Registry) error {
return nil
}
func (m *MakeBucketRequest) validateRetention(formats strfmt.Registry) error {
if swag.IsZero(m.Retention) { // not required
return nil
}
if m.Retention != nil {
if err := m.Retention.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("retention")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *MakeBucketRequest) MarshalBinary() ([]byte, error) {
if m == nil {