Added Exclude Folders & Exclude Prefixes support (#2973)

Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
This commit is contained in:
Alex
2023-08-02 13:35:00 -06:00
committed by GitHub
parent 0d628f589a
commit 49f856bdd5
17 changed files with 433 additions and 194 deletions

View File

@@ -50,7 +50,7 @@ type MakeBucketRequest struct {
Retention *PutBucketRetentionRequest `json:"retention,omitempty"`
// versioning
Versioning bool `json:"versioning,omitempty"`
Versioning *SetBucketVersioning `json:"versioning,omitempty"`
}
// Validate validates this make bucket request
@@ -69,6 +69,10 @@ func (m *MakeBucketRequest) Validate(formats strfmt.Registry) error {
res = append(res, err)
}
if err := m.validateVersioning(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
@@ -122,6 +126,25 @@ func (m *MakeBucketRequest) validateRetention(formats strfmt.Registry) error {
return nil
}
func (m *MakeBucketRequest) validateVersioning(formats strfmt.Registry) error {
if swag.IsZero(m.Versioning) { // not required
return nil
}
if m.Versioning != nil {
if err := m.Versioning.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("versioning")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("versioning")
}
return err
}
}
return nil
}
// ContextValidate validate this make bucket request based on the context it is used
func (m *MakeBucketRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
@@ -134,6 +157,10 @@ func (m *MakeBucketRequest) ContextValidate(ctx context.Context, formats strfmt.
res = append(res, err)
}
if err := m.contextValidateVersioning(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
@@ -172,6 +199,22 @@ func (m *MakeBucketRequest) contextValidateRetention(ctx context.Context, format
return nil
}
func (m *MakeBucketRequest) contextValidateVersioning(ctx context.Context, formats strfmt.Registry) error {
if m.Versioning != nil {
if err := m.Versioning.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("versioning")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("versioning")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *MakeBucketRequest) MarshalBinary() ([]byte, error) {
if m == nil {