diff --git a/sdk/dotnet/Addon.cs b/sdk/dotnet/Addon.cs new file mode 100644 index 000000000..158c82666 --- /dev/null +++ b/sdk/dotnet/Addon.cs @@ -0,0 +1,113 @@ +// *** WARNING: this file was generated by pulumi-gen-eks. *** +// *** 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; + +namespace Pulumi.Eks +{ + /// + /// Addon manages an EKS add-on. + /// For more information about supported add-ons, see: https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html + /// + [EksResourceType("eks:index:Addon")] + public partial class Addon : global::Pulumi.ComponentResource + { + /// + /// Create a Addon 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 Addon(string name, AddonArgs args, ComponentResourceOptions? options = null) + : base("eks:index:Addon", name, args ?? new AddonArgs(), MakeResourceOptions(options, ""), remote: true) + { + } + + private static ComponentResourceOptions MakeResourceOptions(ComponentResourceOptions? options, Input? id) + { + var defaultOptions = new ComponentResourceOptions + { + Version = Utilities.Version, + }; + var merged = ComponentResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + } + + public sealed class AddonArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the EKS add-on. The name must match one of the names returned by describe-addon-versions. + /// + [Input("addonName", required: true)] + public Input AddonName { get; set; } = null!; + + /// + /// The version of the EKS add-on. The version must match one of the versions returned by describe-addon-versions. + /// + [Input("addonVersion")] + public Input? AddonVersion { get; set; } + + /// + /// The target EKS cluster. + /// + [Input("cluster", required: true)] + public Input Cluster { get; set; } = null!; + + /// + /// Custom configuration values for addons with single JSON string. This JSON string value must match the JSON schema derived from describe-addon-configuration. + /// + [Input("configurationValues")] + public Input? ConfigurationValues { get; set; } + + /// + /// Indicates if you want to preserve the created resources when deleting the EKS add-on. + /// + [Input("preserve")] + public Input? Preserve { get; set; } + + /// + /// How to resolve field value conflicts when migrating a self-managed add-on to an Amazon EKS add-on. Valid values are NONE and OVERWRITE. For more details see the CreateAddon API Docs. + /// + [Input("resolveConflictsOnCreate")] + public Input? ResolveConflictsOnCreate { get; set; } + + /// + /// How to resolve field value conflicts for an Amazon EKS add-on if you've changed a value from the Amazon EKS default value. Valid values are NONE, OVERWRITE, and PRESERVE. For more details see the UpdateAddon API Docs. + /// + [Input("resolveConflictsOnUpdate")] + public Input? ResolveConflictsOnUpdate { get; set; } + + /// + /// The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account. The role must be assigned the IAM permissions required by the add-on. If you don't specify an existing IAM role, then the add-on uses the permissions assigned to the node IAM role. For more information, see Amazon EKS node IAM role in the Amazon EKS User Guide. + /// + /// Note: To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see Enabling IAM roles for service accounts on your cluster in the Amazon EKS User Guide. + /// + [Input("serviceAccountRoleArn")] + public Input? ServiceAccountRoleArn { get; set; } + + [Input("tags")] + private InputList>? _tags; + + /// + /// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputList> Tags + { + get => _tags ?? (_tags = new InputList>()); + set => _tags = value; + } + + public AddonArgs() + { + } + public static new AddonArgs Empty => new AddonArgs(); + } +}