// *** WARNING: this file was generated by pulumigen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.ComponentModel;
using Pulumi;

namespace Pulumi.ScalewayInstances.Bootscripts
{
    /// <summary>
    /// The bootscript arch
    /// </summary>
    [EnumType]
    public readonly struct ScalewayInstanceV1BootscriptArch : IEquatable<ScalewayInstanceV1BootscriptArch>
    {
        private readonly string _value;

        private ScalewayInstanceV1BootscriptArch(string value)
        {
            _value = value ?? throw new ArgumentNullException(nameof(value));
        }

        public static ScalewayInstanceV1BootscriptArch X8664 { get; } = new ScalewayInstanceV1BootscriptArch("x86_64");
        public static ScalewayInstanceV1BootscriptArch Arm { get; } = new ScalewayInstanceV1BootscriptArch("arm");

        public static bool operator ==(ScalewayInstanceV1BootscriptArch left, ScalewayInstanceV1BootscriptArch right) => left.Equals(right);
        public static bool operator !=(ScalewayInstanceV1BootscriptArch left, ScalewayInstanceV1BootscriptArch right) => !left.Equals(right);

        public static explicit operator string(ScalewayInstanceV1BootscriptArch value) => value._value;

        [EditorBrowsable(EditorBrowsableState.Never)]
        public override bool Equals(object? obj) => obj is ScalewayInstanceV1BootscriptArch other && Equals(other);
        public bool Equals(ScalewayInstanceV1BootscriptArch other) => string.Equals(_value, other._value, StringComparison.Ordinal);

        [EditorBrowsable(EditorBrowsableState.Never)]
        public override int GetHashCode() => _value?.GetHashCode() ?? 0;

        public override string ToString() => _value;
    }
}
