<reponame>cloudy-sky-software/pulumi-scaleway-instances<filename>sdk/dotnet/Volumes/Enums.cs// *** 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.Volumes
{
    [EnumType]
    public readonly struct ScalewayInstanceV1VolumeState : IEquatable<ScalewayInstanceV1VolumeState>
    {
        private readonly string _value;

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

        public static ScalewayInstanceV1VolumeState Available { get; } = new ScalewayInstanceV1VolumeState("available");
        public static ScalewayInstanceV1VolumeState Snapshotting { get; } = new ScalewayInstanceV1VolumeState("snapshotting");
        public static ScalewayInstanceV1VolumeState Error { get; } = new ScalewayInstanceV1VolumeState("error");
        public static ScalewayInstanceV1VolumeState Fetching { get; } = new ScalewayInstanceV1VolumeState("fetching");
        public static ScalewayInstanceV1VolumeState Resizing { get; } = new ScalewayInstanceV1VolumeState("resizing");
        public static ScalewayInstanceV1VolumeState Saving { get; } = new ScalewayInstanceV1VolumeState("saving");
        public static ScalewayInstanceV1VolumeState Hotsyncing { get; } = new ScalewayInstanceV1VolumeState("hotsyncing");

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

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

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

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

        public override string ToString() => _value;
    }

    [EnumType]
    public readonly struct ScalewayInstanceV1VolumeVolumeType : IEquatable<ScalewayInstanceV1VolumeVolumeType>
    {
        private readonly string _value;

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

        public static ScalewayInstanceV1VolumeVolumeType LSsd { get; } = new ScalewayInstanceV1VolumeVolumeType("l_ssd");
        public static ScalewayInstanceV1VolumeVolumeType BSsd { get; } = new ScalewayInstanceV1VolumeVolumeType("b_ssd");
        public static ScalewayInstanceV1VolumeVolumeType Unified { get; } = new ScalewayInstanceV1VolumeVolumeType("unified");

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

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

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

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

        public override string ToString() => _value;
    }

    [EnumType]
    public readonly struct State : IEquatable<State>
    {
        private readonly string _value;

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

        public static State Available { get; } = new State("available");
        public static State Snapshotting { get; } = new State("snapshotting");
        public static State Error { get; } = new State("error");
        public static State Fetching { get; } = new State("fetching");
        public static State Resizing { get; } = new State("resizing");
        public static State Saving { get; } = new State("saving");
        public static State Hotsyncing { get; } = new State("hotsyncing");

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

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

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

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

        public override string ToString() => _value;
    }

    [EnumType]
    public readonly struct VolumeType : IEquatable<VolumeType>
    {
        private readonly string _value;

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

        public static VolumeType LSsd { get; } = new VolumeType("l_ssd");
        public static VolumeType BSsd { get; } = new VolumeType("b_ssd");
        public static VolumeType Unified { get; } = new VolumeType("unified");

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

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

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

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

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