flexibleengine.ObsBucketReplication
Explore with Pulumi AI
Manages an OBS bucket Cross-Region Replication resource within FlexibleEngine.
Cross-Region replication provides the capability for data disaster recovery across regions, catering to your needs for off-site data backup.
Example Usage
Replicate all objects
import * as pulumi from "@pulumi/pulumi";
import * as flexibleengine from "@pulumi/flexibleengine";
const replica = new flexibleengine.ObsBucketReplication("replica", {
agency: "obs-fullaccess",
bucket: "my-source-bucket",
destinationBucket: "my-target-bucket",
});
import pulumi
import pulumi_flexibleengine as flexibleengine
replica = flexibleengine.ObsBucketReplication("replica",
agency="obs-fullaccess",
bucket="my-source-bucket",
destination_bucket="my-target-bucket")
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := flexibleengine.NewObsBucketReplication(ctx, "replica", &flexibleengine.ObsBucketReplicationArgs{
Agency: pulumi.String("obs-fullaccess"),
Bucket: pulumi.String("my-source-bucket"),
DestinationBucket: pulumi.String("my-target-bucket"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Flexibleengine = Pulumi.Flexibleengine;
return await Deployment.RunAsync(() =>
{
var replica = new Flexibleengine.ObsBucketReplication("replica", new()
{
Agency = "obs-fullaccess",
Bucket = "my-source-bucket",
DestinationBucket = "my-target-bucket",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.flexibleengine.ObsBucketReplication;
import com.pulumi.flexibleengine.ObsBucketReplicationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var replica = new ObsBucketReplication("replica", ObsBucketReplicationArgs.builder()
.agency("obs-fullaccess")
.bucket("my-source-bucket")
.destinationBucket("my-target-bucket")
.build());
}
}
resources:
replica:
type: flexibleengine:ObsBucketReplication
properties:
agency: obs-fullaccess
bucket: my-source-bucket
destinationBucket: my-target-bucket
Replicate objects matched by prefix
import * as pulumi from "@pulumi/pulumi";
import * as flexibleengine from "@pulumi/flexibleengine";
const replica = new flexibleengine.ObsBucketReplication("replica", {
agency: "obs-fullaccess",
bucket: "my-source-bucket",
destinationBucket: "my-target-bucket",
rules: [
{
enabled: true,
prefix: "log",
},
{
enabled: false,
prefix: "imgs/",
},
],
});
import pulumi
import pulumi_flexibleengine as flexibleengine
replica = flexibleengine.ObsBucketReplication("replica",
agency="obs-fullaccess",
bucket="my-source-bucket",
destination_bucket="my-target-bucket",
rules=[
{
"enabled": True,
"prefix": "log",
},
{
"enabled": False,
"prefix": "imgs/",
},
])
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/flexibleengine/flexibleengine"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := flexibleengine.NewObsBucketReplication(ctx, "replica", &flexibleengine.ObsBucketReplicationArgs{
Agency: pulumi.String("obs-fullaccess"),
Bucket: pulumi.String("my-source-bucket"),
DestinationBucket: pulumi.String("my-target-bucket"),
Rules: flexibleengine.ObsBucketReplicationRuleArray{
&flexibleengine.ObsBucketReplicationRuleArgs{
Enabled: pulumi.Bool(true),
Prefix: pulumi.String("log"),
},
&flexibleengine.ObsBucketReplicationRuleArgs{
Enabled: pulumi.Bool(false),
Prefix: pulumi.String("imgs/"),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Flexibleengine = Pulumi.Flexibleengine;
return await Deployment.RunAsync(() =>
{
var replica = new Flexibleengine.ObsBucketReplication("replica", new()
{
Agency = "obs-fullaccess",
Bucket = "my-source-bucket",
DestinationBucket = "my-target-bucket",
Rules = new[]
{
new Flexibleengine.Inputs.ObsBucketReplicationRuleArgs
{
Enabled = true,
Prefix = "log",
},
new Flexibleengine.Inputs.ObsBucketReplicationRuleArgs
{
Enabled = false,
Prefix = "imgs/",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.flexibleengine.ObsBucketReplication;
import com.pulumi.flexibleengine.ObsBucketReplicationArgs;
import com.pulumi.flexibleengine.inputs.ObsBucketReplicationRuleArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var replica = new ObsBucketReplication("replica", ObsBucketReplicationArgs.builder()
.agency("obs-fullaccess")
.bucket("my-source-bucket")
.destinationBucket("my-target-bucket")
.rules(
ObsBucketReplicationRuleArgs.builder()
.enabled(true)
.prefix("log")
.build(),
ObsBucketReplicationRuleArgs.builder()
.enabled(false)
.prefix("imgs/")
.build())
.build());
}
}
resources:
replica:
type: flexibleengine:ObsBucketReplication
properties:
agency: obs-fullaccess
bucket: my-source-bucket
destinationBucket: my-target-bucket
rules:
- enabled: true
prefix: log
- enabled: false
prefix: imgs/
Create ObsBucketReplication Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new ObsBucketReplication(name: string, args: ObsBucketReplicationArgs, opts?: CustomResourceOptions);
@overload
def ObsBucketReplication(resource_name: str,
args: ObsBucketReplicationArgs,
opts: Optional[ResourceOptions] = None)
@overload
def ObsBucketReplication(resource_name: str,
opts: Optional[ResourceOptions] = None,
agency: Optional[str] = None,
bucket: Optional[str] = None,
destination_bucket: Optional[str] = None,
obs_bucket_replication_id: Optional[str] = None,
rules: Optional[Sequence[ObsBucketReplicationRuleArgs]] = None)
func NewObsBucketReplication(ctx *Context, name string, args ObsBucketReplicationArgs, opts ...ResourceOption) (*ObsBucketReplication, error)
public ObsBucketReplication(string name, ObsBucketReplicationArgs args, CustomResourceOptions? opts = null)
public ObsBucketReplication(String name, ObsBucketReplicationArgs args)
public ObsBucketReplication(String name, ObsBucketReplicationArgs args, CustomResourceOptions options)
type: flexibleengine:ObsBucketReplication
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args ObsBucketReplicationArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args ObsBucketReplicationArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args ObsBucketReplicationArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ObsBucketReplicationArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ObsBucketReplicationArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var obsBucketReplicationResource = new Flexibleengine.ObsBucketReplication("obsBucketReplicationResource", new()
{
Agency = "string",
Bucket = "string",
DestinationBucket = "string",
ObsBucketReplicationId = "string",
Rules = new[]
{
new Flexibleengine.Inputs.ObsBucketReplicationRuleArgs
{
Enabled = false,
Id = "string",
Prefix = "string",
StorageClass = "string",
},
},
});
example, err := flexibleengine.NewObsBucketReplication(ctx, "obsBucketReplicationResource", &flexibleengine.ObsBucketReplicationArgs{
Agency: pulumi.String("string"),
Bucket: pulumi.String("string"),
DestinationBucket: pulumi.String("string"),
ObsBucketReplicationId: pulumi.String("string"),
Rules: flexibleengine.ObsBucketReplicationRuleArray{
&flexibleengine.ObsBucketReplicationRuleArgs{
Enabled: pulumi.Bool(false),
Id: pulumi.String("string"),
Prefix: pulumi.String("string"),
StorageClass: pulumi.String("string"),
},
},
})
var obsBucketReplicationResource = new ObsBucketReplication("obsBucketReplicationResource", ObsBucketReplicationArgs.builder()
.agency("string")
.bucket("string")
.destinationBucket("string")
.obsBucketReplicationId("string")
.rules(ObsBucketReplicationRuleArgs.builder()
.enabled(false)
.id("string")
.prefix("string")
.storageClass("string")
.build())
.build());
obs_bucket_replication_resource = flexibleengine.ObsBucketReplication("obsBucketReplicationResource",
agency="string",
bucket="string",
destination_bucket="string",
obs_bucket_replication_id="string",
rules=[{
"enabled": False,
"id": "string",
"prefix": "string",
"storage_class": "string",
}])
const obsBucketReplicationResource = new flexibleengine.ObsBucketReplication("obsBucketReplicationResource", {
agency: "string",
bucket: "string",
destinationBucket: "string",
obsBucketReplicationId: "string",
rules: [{
enabled: false,
id: "string",
prefix: "string",
storageClass: "string",
}],
});
type: flexibleengine:ObsBucketReplication
properties:
agency: string
bucket: string
destinationBucket: string
obsBucketReplicationId: string
rules:
- enabled: false
id: string
prefix: string
storageClass: string
ObsBucketReplication Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The ObsBucketReplication resource accepts the following input properties:
- Agency string
Specifies the IAM agency applied to the cross-region replication function.
The IAM agency is a cloud service agency of OBS. The OBS project must have the OBS FullAccess permissions.
- Bucket string
- Specifies the name of the source bucket. Changing this parameter will create a new resource.
- Destination
Bucket string Specifies the name of the destination bucket.
The destination bucket cannot be in the region where the source bucket resides.
- Obs
Bucket stringReplication Id - The ID of a rule in UUID format.
- Rules
List<Obs
Bucket Replication Rule> A configuration of object cross-region replication management. The rule object structure is documented below.
The
rule
block supports:
- Agency string
Specifies the IAM agency applied to the cross-region replication function.
The IAM agency is a cloud service agency of OBS. The OBS project must have the OBS FullAccess permissions.
- Bucket string
- Specifies the name of the source bucket. Changing this parameter will create a new resource.
- Destination
Bucket string Specifies the name of the destination bucket.
The destination bucket cannot be in the region where the source bucket resides.
- Obs
Bucket stringReplication Id - The ID of a rule in UUID format.
- Rules
[]Obs
Bucket Replication Rule Args A configuration of object cross-region replication management. The rule object structure is documented below.
The
rule
block supports:
- agency String
Specifies the IAM agency applied to the cross-region replication function.
The IAM agency is a cloud service agency of OBS. The OBS project must have the OBS FullAccess permissions.
- bucket String
- Specifies the name of the source bucket. Changing this parameter will create a new resource.
- destination
Bucket String Specifies the name of the destination bucket.
The destination bucket cannot be in the region where the source bucket resides.
- obs
Bucket StringReplication Id - The ID of a rule in UUID format.
- rules
List<Obs
Bucket Replication Rule> A configuration of object cross-region replication management. The rule object structure is documented below.
The
rule
block supports:
- agency string
Specifies the IAM agency applied to the cross-region replication function.
The IAM agency is a cloud service agency of OBS. The OBS project must have the OBS FullAccess permissions.
- bucket string
- Specifies the name of the source bucket. Changing this parameter will create a new resource.
- destination
Bucket string Specifies the name of the destination bucket.
The destination bucket cannot be in the region where the source bucket resides.
- obs
Bucket stringReplication Id - The ID of a rule in UUID format.
- rules
Obs
Bucket Replication Rule[] A configuration of object cross-region replication management. The rule object structure is documented below.
The
rule
block supports:
- agency str
Specifies the IAM agency applied to the cross-region replication function.
The IAM agency is a cloud service agency of OBS. The OBS project must have the OBS FullAccess permissions.
- bucket str
- Specifies the name of the source bucket. Changing this parameter will create a new resource.
- destination_
bucket str Specifies the name of the destination bucket.
The destination bucket cannot be in the region where the source bucket resides.
- obs_
bucket_ strreplication_ id - The ID of a rule in UUID format.
- rules
Sequence[Obs
Bucket Replication Rule Args] A configuration of object cross-region replication management. The rule object structure is documented below.
The
rule
block supports:
- agency String
Specifies the IAM agency applied to the cross-region replication function.
The IAM agency is a cloud service agency of OBS. The OBS project must have the OBS FullAccess permissions.
- bucket String
- Specifies the name of the source bucket. Changing this parameter will create a new resource.
- destination
Bucket String Specifies the name of the destination bucket.
The destination bucket cannot be in the region where the source bucket resides.
- obs
Bucket StringReplication Id - The ID of a rule in UUID format.
- rules List<Property Map>
A configuration of object cross-region replication management. The rule object structure is documented below.
The
rule
block supports:
Outputs
All input properties are implicitly available as output properties. Additionally, the ObsBucketReplication resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing ObsBucketReplication Resource
Get an existing ObsBucketReplication resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: ObsBucketReplicationState, opts?: CustomResourceOptions): ObsBucketReplication
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
agency: Optional[str] = None,
bucket: Optional[str] = None,
destination_bucket: Optional[str] = None,
obs_bucket_replication_id: Optional[str] = None,
rules: Optional[Sequence[ObsBucketReplicationRuleArgs]] = None) -> ObsBucketReplication
func GetObsBucketReplication(ctx *Context, name string, id IDInput, state *ObsBucketReplicationState, opts ...ResourceOption) (*ObsBucketReplication, error)
public static ObsBucketReplication Get(string name, Input<string> id, ObsBucketReplicationState? state, CustomResourceOptions? opts = null)
public static ObsBucketReplication get(String name, Output<String> id, ObsBucketReplicationState state, CustomResourceOptions options)
resources: _: type: flexibleengine:ObsBucketReplication get: id: ${id}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Agency string
Specifies the IAM agency applied to the cross-region replication function.
The IAM agency is a cloud service agency of OBS. The OBS project must have the OBS FullAccess permissions.
- Bucket string
- Specifies the name of the source bucket. Changing this parameter will create a new resource.
- Destination
Bucket string Specifies the name of the destination bucket.
The destination bucket cannot be in the region where the source bucket resides.
- Obs
Bucket stringReplication Id - The ID of a rule in UUID format.
- Rules
List<Obs
Bucket Replication Rule> A configuration of object cross-region replication management. The rule object structure is documented below.
The
rule
block supports:
- Agency string
Specifies the IAM agency applied to the cross-region replication function.
The IAM agency is a cloud service agency of OBS. The OBS project must have the OBS FullAccess permissions.
- Bucket string
- Specifies the name of the source bucket. Changing this parameter will create a new resource.
- Destination
Bucket string Specifies the name of the destination bucket.
The destination bucket cannot be in the region where the source bucket resides.
- Obs
Bucket stringReplication Id - The ID of a rule in UUID format.
- Rules
[]Obs
Bucket Replication Rule Args A configuration of object cross-region replication management. The rule object structure is documented below.
The
rule
block supports:
- agency String
Specifies the IAM agency applied to the cross-region replication function.
The IAM agency is a cloud service agency of OBS. The OBS project must have the OBS FullAccess permissions.
- bucket String
- Specifies the name of the source bucket. Changing this parameter will create a new resource.
- destination
Bucket String Specifies the name of the destination bucket.
The destination bucket cannot be in the region where the source bucket resides.
- obs
Bucket StringReplication Id - The ID of a rule in UUID format.
- rules
List<Obs
Bucket Replication Rule> A configuration of object cross-region replication management. The rule object structure is documented below.
The
rule
block supports:
- agency string
Specifies the IAM agency applied to the cross-region replication function.
The IAM agency is a cloud service agency of OBS. The OBS project must have the OBS FullAccess permissions.
- bucket string
- Specifies the name of the source bucket. Changing this parameter will create a new resource.
- destination
Bucket string Specifies the name of the destination bucket.
The destination bucket cannot be in the region where the source bucket resides.
- obs
Bucket stringReplication Id - The ID of a rule in UUID format.
- rules
Obs
Bucket Replication Rule[] A configuration of object cross-region replication management. The rule object structure is documented below.
The
rule
block supports:
- agency str
Specifies the IAM agency applied to the cross-region replication function.
The IAM agency is a cloud service agency of OBS. The OBS project must have the OBS FullAccess permissions.
- bucket str
- Specifies the name of the source bucket. Changing this parameter will create a new resource.
- destination_
bucket str Specifies the name of the destination bucket.
The destination bucket cannot be in the region where the source bucket resides.
- obs_
bucket_ strreplication_ id - The ID of a rule in UUID format.
- rules
Sequence[Obs
Bucket Replication Rule Args] A configuration of object cross-region replication management. The rule object structure is documented below.
The
rule
block supports:
- agency String
Specifies the IAM agency applied to the cross-region replication function.
The IAM agency is a cloud service agency of OBS. The OBS project must have the OBS FullAccess permissions.
- bucket String
- Specifies the name of the source bucket. Changing this parameter will create a new resource.
- destination
Bucket String Specifies the name of the destination bucket.
The destination bucket cannot be in the region where the source bucket resides.
- obs
Bucket StringReplication Id - The ID of a rule in UUID format.
- rules List<Property Map>
A configuration of object cross-region replication management. The rule object structure is documented below.
The
rule
block supports:
Supporting Types
ObsBucketReplicationRule, ObsBucketReplicationRuleArgs
- Enabled bool
- Specifies cross-region replication rule status. Defaults to
true
. - Id string
- The ID of a rule in UUID format.
- Prefix string
- Specifies the object key prefix identifying one or more objects to which the rule applies and duplicated prefixes are not supported. If omitted, all objects in the bucket will be managed by the lifecycle rule. To copy a folder, end the prefix with a slash (/), for example, imgs/.
- Storage
Class string - Specifies the storage class for replicated objects. Valid values are "STANDARD", "WARM" (Infrequent Access) and "COLD" (Archive). If omitted, the storage class of object copies is the same as that of objects in the source bucket.
- Enabled bool
- Specifies cross-region replication rule status. Defaults to
true
. - Id string
- The ID of a rule in UUID format.
- Prefix string
- Specifies the object key prefix identifying one or more objects to which the rule applies and duplicated prefixes are not supported. If omitted, all objects in the bucket will be managed by the lifecycle rule. To copy a folder, end the prefix with a slash (/), for example, imgs/.
- Storage
Class string - Specifies the storage class for replicated objects. Valid values are "STANDARD", "WARM" (Infrequent Access) and "COLD" (Archive). If omitted, the storage class of object copies is the same as that of objects in the source bucket.
- enabled Boolean
- Specifies cross-region replication rule status. Defaults to
true
. - id String
- The ID of a rule in UUID format.
- prefix String
- Specifies the object key prefix identifying one or more objects to which the rule applies and duplicated prefixes are not supported. If omitted, all objects in the bucket will be managed by the lifecycle rule. To copy a folder, end the prefix with a slash (/), for example, imgs/.
- storage
Class String - Specifies the storage class for replicated objects. Valid values are "STANDARD", "WARM" (Infrequent Access) and "COLD" (Archive). If omitted, the storage class of object copies is the same as that of objects in the source bucket.
- enabled boolean
- Specifies cross-region replication rule status. Defaults to
true
. - id string
- The ID of a rule in UUID format.
- prefix string
- Specifies the object key prefix identifying one or more objects to which the rule applies and duplicated prefixes are not supported. If omitted, all objects in the bucket will be managed by the lifecycle rule. To copy a folder, end the prefix with a slash (/), for example, imgs/.
- storage
Class string - Specifies the storage class for replicated objects. Valid values are "STANDARD", "WARM" (Infrequent Access) and "COLD" (Archive). If omitted, the storage class of object copies is the same as that of objects in the source bucket.
- enabled bool
- Specifies cross-region replication rule status. Defaults to
true
. - id str
- The ID of a rule in UUID format.
- prefix str
- Specifies the object key prefix identifying one or more objects to which the rule applies and duplicated prefixes are not supported. If omitted, all objects in the bucket will be managed by the lifecycle rule. To copy a folder, end the prefix with a slash (/), for example, imgs/.
- storage_
class str - Specifies the storage class for replicated objects. Valid values are "STANDARD", "WARM" (Infrequent Access) and "COLD" (Archive). If omitted, the storage class of object copies is the same as that of objects in the source bucket.
- enabled Boolean
- Specifies cross-region replication rule status. Defaults to
true
. - id String
- The ID of a rule in UUID format.
- prefix String
- Specifies the object key prefix identifying one or more objects to which the rule applies and duplicated prefixes are not supported. If omitted, all objects in the bucket will be managed by the lifecycle rule. To copy a folder, end the prefix with a slash (/), for example, imgs/.
- storage
Class String - Specifies the storage class for replicated objects. Valid values are "STANDARD", "WARM" (Infrequent Access) and "COLD" (Archive). If omitted, the storage class of object copies is the same as that of objects in the source bucket.
Import
OBS bucket cross-region replication can be imported using the source bucket name, e.g.
$ pulumi import flexibleengine:index/obsBucketReplication:ObsBucketReplication replica my-source-bucket
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- flexibleengine flexibleenginecloud/terraform-provider-flexibleengine
- License
- Notes
- This Pulumi package is based on the
flexibleengine
Terraform Provider.