diff --git a/models/bucket_replication_rule.go b/models/bucket_replication_rule.go
index 7c41ca870..d493db909 100644
--- a/models/bucket_replication_rule.go
+++ b/models/bucket_replication_rule.go
@@ -49,6 +49,9 @@ type BucketReplicationRule struct {
// destination
Destination *BucketReplicationDestination `json:"destination,omitempty"`
+ // existing objects
+ ExistingObjects bool `json:"existingObjects,omitempty"`
+
// health check period
HealthCheckPeriod int64 `json:"healthCheckPeriod,omitempty"`
@@ -68,6 +71,9 @@ type BucketReplicationRule struct {
// Enum: [Enabled Disabled]
Status string `json:"status,omitempty"`
+ // storage class
+ StorageClass string `json:"storageClass,omitempty"`
+
// sync mode
// Enum: [async sync]
SyncMode *string `json:"syncMode,omitempty"`
diff --git a/models/multi_bucket_replication.go b/models/multi_bucket_replication.go
index 36d397262..05412c011 100644
--- a/models/multi_bucket_replication.go
+++ b/models/multi_bucket_replication.go
@@ -76,6 +76,9 @@ type MultiBucketReplication struct {
// Min Length: 8
SecretKey *string `json:"secretKey"`
+ // storage class
+ StorageClass string `json:"storageClass,omitempty"`
+
// sync mode
// Enum: [async sync]
SyncMode *string `json:"syncMode,omitempty"`
diff --git a/models/multi_bucket_replication_edit.go b/models/multi_bucket_replication_edit.go
new file mode 100644
index 000000000..6a8c76a58
--- /dev/null
+++ b/models/multi_bucket_replication_edit.go
@@ -0,0 +1,94 @@
+// Code generated by go-swagger; DO NOT EDIT.
+
+// This file is part of MinIO Console Server
+// Copyright (c) 2021 MinIO, Inc.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+//
+
+package models
+
+// This file was generated by the swagger tool.
+// Editing this file might prove futile when you re-run the swagger generate command
+
+import (
+ "context"
+
+ "github.com/go-openapi/strfmt"
+ "github.com/go-openapi/swag"
+)
+
+// MultiBucketReplicationEdit multi bucket replication edit
+//
+// swagger:model multiBucketReplicationEdit
+type MultiBucketReplicationEdit struct {
+
+ // arn
+ Arn string `json:"arn,omitempty"`
+
+ // prefix
+ Prefix string `json:"prefix,omitempty"`
+
+ // priority
+ Priority int32 `json:"priority,omitempty"`
+
+ // replicate delete markers
+ ReplicateDeleteMarkers bool `json:"replicateDeleteMarkers,omitempty"`
+
+ // replicate deletes
+ ReplicateDeletes bool `json:"replicateDeletes,omitempty"`
+
+ // replicate existing objects
+ ReplicateExistingObjects bool `json:"replicateExistingObjects,omitempty"`
+
+ // replicate metadata
+ ReplicateMetadata bool `json:"replicateMetadata,omitempty"`
+
+ // rule state
+ RuleState bool `json:"ruleState,omitempty"`
+
+ // storage class
+ StorageClass string `json:"storageClass,omitempty"`
+
+ // tags
+ Tags string `json:"tags,omitempty"`
+}
+
+// Validate validates this multi bucket replication edit
+func (m *MultiBucketReplicationEdit) Validate(formats strfmt.Registry) error {
+ return nil
+}
+
+// ContextValidate validates this multi bucket replication edit based on context it is used
+func (m *MultiBucketReplicationEdit) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
+ return nil
+}
+
+// MarshalBinary interface implementation
+func (m *MultiBucketReplicationEdit) MarshalBinary() ([]byte, error) {
+ if m == nil {
+ return nil, nil
+ }
+ return swag.WriteJSON(m)
+}
+
+// UnmarshalBinary interface implementation
+func (m *MultiBucketReplicationEdit) UnmarshalBinary(b []byte) error {
+ var res MultiBucketReplicationEdit
+ if err := swag.ReadJSON(b, &res); err != nil {
+ return err
+ }
+ *m = res
+ return nil
+}
diff --git a/portal-ui/src/screens/Console/Buckets/BucketDetails/AddReplicationModal.tsx b/portal-ui/src/screens/Console/Buckets/BucketDetails/AddReplicationModal.tsx
index 83391b898..096ecc05c 100644
--- a/portal-ui/src/screens/Console/Buckets/BucketDetails/AddReplicationModal.tsx
+++ b/portal-ui/src/screens/Console/Buckets/BucketDetails/AddReplicationModal.tsx
@@ -96,6 +96,7 @@ const AddReplicationModal = ({
const [useTLS, setUseTLS] = useState(true);
const [repDeleteMarker, setRepDeleteMarker] = useState(true);
const [repDelete, setRepDelete] = useState(true);
+ const [metadataSync, setMetadataSync] = useState(true);
const [tags, setTags] = useState("");
const [replicationMode, setReplicationMode] = useState("async");
const [bandwidthScalar, setBandwidthScalar] = useState("100");
@@ -148,6 +149,8 @@ const AddReplicationModal = ({
replicateDeleteMarkers: repDeleteMarker,
replicateDeletes: repDelete,
priority: parseInt(priority),
+ storageClass: targetStorageClass,
+ replicateMetadata: metadataSync,
};
api
@@ -343,6 +346,22 @@ const AddReplicationModal = ({
value={healthCheck}
/>
+
+ ) => {
+ setTargetStorageClass(e.target.value);
+ }}
+ placeholder="STANDARD_IA,REDUCED_REDUNDANCY etc"
+ label="Storage Class"
+ value={targetStorageClass}
+ />
+
-
-
- ) => {
- setTargetStorageClass(e.target.value);
- }}
- placeholder="STANDARD_IA,REDUCED_REDUNDANCY etc"
- label="Storage Class"
- value={targetStorageClass}
- />
-