// *** WARNING: this file was generated by pulumi-language-dotnet. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;
namespace Maxvojtkov.Dokploy
{
[DokployResourceType("dokploy:index/destination:Destination")]
public partial class Destination : global::Pulumi.CustomResource
{
///
/// S3 access key ID.
///
[Output("accessKey")]
public Output AccessKey { get; private set; } = null!;
///
/// Extra flags passed to the underlying `Rclone` invocation.
///
[Output("additionalFlags")]
public Output> AdditionalFlags { get; private set; } = null!;
///
/// Bucket name.
///
[Output("bucket")]
public Output Bucket { get; private set; } = null!;
///
/// Timestamp of when the destination was created.
///
[Output("createdAt")]
public Output CreatedAt { get; private set; } = null!;
///
/// S3 endpoint URL.
///
[Output("endpoint")]
public Output Endpoint { get; private set; } = null!;
///
/// Display name of the destination.
///
[Output("name")]
public Output Name { get; private set; } = null!;
///
/// Provider label, for example `S3` or `Cloudflare`. Named `ProviderName` because `Provider` is reserved by Terraform.
///
[Output("providerName")]
public Output ProviderName { get; private set; } = null!;
///
/// Bucket region, for example `us-east-1`.
///
[Output("region")]
public Output Region { get; private set; } = null!;
///
/// S3 secret access key.
///
[Output("secretAccessKey")]
public Output SecretAccessKey { get; private set; } = null!;
///
/// Server this destination is scoped to.
///
[Output("serverId")]
public Output ServerId { get; private set; } = null!;
///
/// Create a Destination resource with the given unique name, arguments, and options.
///
///
/// The unique name of the resource
/// The arguments used to populate this resource's properties
/// A bag of options that control this resource's behavior
public Destination(string name, DestinationArgs args, CustomResourceOptions? options = null)
: base("dokploy:index/destination:Destination", name, args ?? new DestinationArgs(), MakeResourceOptions(options, ""))
{
}
private Destination(string name, Input id, DestinationState? state = null, CustomResourceOptions? options = null)
: base("dokploy:index/destination:Destination", name, state, MakeResourceOptions(options, id))
{
}
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
{
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
PluginDownloadURL = "github://api.github.com/maxvojtkov/pulumi-dokploy",
AdditionalSecretOutputs =
{
"secretAccessKey",
},
};
var merged = CustomResourceOptions.Merge(defaultOptions, options);
// Override the ID if one was specified for consistency with other language SDKs.
merged.Id = id ?? merged.Id;
return merged;
}
///
/// Get an existing Destination resource's state with the given name, ID, and optional extra
/// properties used to qualify the lookup.
///
///
/// The unique name of the resulting resource.
/// The unique provider ID of the resource to lookup.
/// Any extra arguments used during the lookup.
/// A bag of options that control this resource's behavior
public static Destination Get(string name, Input id, DestinationState? state = null, CustomResourceOptions? options = null)
{
return new Destination(name, id, state, options);
}
}
public sealed class DestinationArgs : global::Pulumi.ResourceArgs
{
///
/// S3 access key ID.
///
[Input("accessKey", required: true)]
public Input AccessKey { get; set; } = null!;
[Input("additionalFlags")]
private InputList? _additionalFlags;
///
/// Extra flags passed to the underlying `Rclone` invocation.
///
public InputList AdditionalFlags
{
get => _additionalFlags ?? (_additionalFlags = new InputList());
set => _additionalFlags = value;
}
///
/// Bucket name.
///
[Input("bucket", required: true)]
public Input Bucket { get; set; } = null!;
///
/// S3 endpoint URL.
///
[Input("endpoint", required: true)]
public Input Endpoint { get; set; } = null!;
///
/// Display name of the destination.
///
[Input("name")]
public Input? Name { get; set; }
///
/// Provider label, for example `S3` or `Cloudflare`. Named `ProviderName` because `Provider` is reserved by Terraform.
///
[Input("providerName")]
public Input? ProviderName { get; set; }
///
/// Bucket region, for example `us-east-1`.
///
[Input("region", required: true)]
public Input Region { get; set; } = null!;
[Input("secretAccessKey", required: true)]
private Input? _secretAccessKey;
///
/// S3 secret access key.
///
public Input? SecretAccessKey
{
get => _secretAccessKey;
set
{
var emptySecret = Output.CreateSecret(0);
_secretAccessKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
///
/// Server this destination is scoped to.
///
[Input("serverId")]
public Input? ServerId { get; set; }
public DestinationArgs()
{
}
public static new DestinationArgs Empty => new DestinationArgs();
}
public sealed class DestinationState : global::Pulumi.ResourceArgs
{
///
/// S3 access key ID.
///
[Input("accessKey")]
public Input? AccessKey { get; set; }
[Input("additionalFlags")]
private InputList? _additionalFlags;
///
/// Extra flags passed to the underlying `Rclone` invocation.
///
public InputList AdditionalFlags
{
get => _additionalFlags ?? (_additionalFlags = new InputList());
set => _additionalFlags = value;
}
///
/// Bucket name.
///
[Input("bucket")]
public Input? Bucket { get; set; }
///
/// Timestamp of when the destination was created.
///
[Input("createdAt")]
public Input? CreatedAt { get; set; }
///
/// S3 endpoint URL.
///
[Input("endpoint")]
public Input? Endpoint { get; set; }
///
/// Display name of the destination.
///
[Input("name")]
public Input? Name { get; set; }
///
/// Provider label, for example `S3` or `Cloudflare`. Named `ProviderName` because `Provider` is reserved by Terraform.
///
[Input("providerName")]
public Input? ProviderName { get; set; }
///
/// Bucket region, for example `us-east-1`.
///
[Input("region")]
public Input? Region { get; set; }
[Input("secretAccessKey")]
private Input? _secretAccessKey;
///
/// S3 secret access key.
///
public Input? SecretAccessKey
{
get => _secretAccessKey;
set
{
var emptySecret = Output.CreateSecret(0);
_secretAccessKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
///
/// Server this destination is scoped to.
///
[Input("serverId")]
public Input? ServerId { get; set; }
public DestinationState()
{
}
public static new DestinationState Empty => new DestinationState();
}
}