<reponame>cloudy-sky-software/pulumi-scaleway-instances// *** 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.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;

namespace Pulumi.ScalewayInstances.Servers.Outputs
{

    [OutputType]
    public sealed class ScalewayInstanceV1Server
    {
        /// <summary>
        /// Provide as list of allowed actions on the server
        /// </summary>
        public readonly ImmutableArray<Pulumi.ScalewayInstances.Servers.ScalewayInstanceV1ServerAllowedActionsItem> Allowed_actions;
        /// <summary>
        /// The server arch
        /// </summary>
        public readonly Pulumi.ScalewayInstances.Servers.ScalewayInstanceV1ServerArch? Arch;
        public readonly Pulumi.ScalewayInstances.Servers.ScalewayInstanceV1ServerBootType? Boot_type;
        public readonly Outputs.ScalewayInstanceV1Bootscript? Bootscript;
        /// <summary>
        /// The server commercial type (eg. GP1-M)
        /// </summary>
        public readonly string? Commercial_type;
        /// <summary>
        /// The server creation date (RFC 3339 format)
        /// </summary>
        public readonly string? Creation_date;
        /// <summary>
        /// True if a dynamic IP is required
        /// </summary>
        public readonly bool? Dynamic_ip_required;
        /// <summary>
        /// True if IPv6 is enabled
        /// </summary>
        public readonly bool? Enable_ipv6;
        /// <summary>
        /// The server host name
        /// </summary>
        public readonly string? Hostname;
        /// <summary>
        /// The server unique ID
        /// </summary>
        public readonly string? Id;
        public readonly Outputs.ScalewayInstanceV1Image? Image;
        /// <summary>
        /// The server IPv6 address
        /// </summary>
        public readonly Outputs.ScalewayInstanceV1ServerIpv6Properties? Ipv6;
        /// <summary>
        /// The server location
        /// </summary>
        public readonly Outputs.ScalewayInstanceV1ServerLocationProperties? Location;
        /// <summary>
        /// The server planned maintenances
        /// </summary>
        public readonly ImmutableArray<Outputs.ScalewayInstanceV1ServerMaintenance> Maintenances;
        /// <summary>
        /// The server modification date (RFC 3339 format)
        /// </summary>
        public readonly string? Modification_date;
        /// <summary>
        /// The server name
        /// </summary>
        public readonly string? Name;
        /// <summary>
        /// The server organization ID
        /// </summary>
        public readonly string? Organization;
        public readonly Outputs.ScalewayInstanceV1PlacementGroup? Placement_group;
        /// <summary>
        /// The server private IP address
        /// </summary>
        public readonly string? Private_ip;
        /// <summary>
        /// The server private NICs
        /// </summary>
        public readonly ImmutableArray<Outputs.ScalewayInstanceV1PrivateNIC> Private_nics;
        /// <summary>
        /// The server project ID
        /// </summary>
        public readonly string? Project;
        /// <summary>
        /// The server protection option is activated
        /// </summary>
        public readonly bool? Protected;
        /// <summary>
        /// Information about the public IP
        /// </summary>
        public readonly Outputs.ScalewayInstanceV1ServerPublicIpProperties? Public_ip;
        /// <summary>
        /// The server security group
        /// </summary>
        public readonly Outputs.ScalewayInstanceV1ServerSecurityGroupProperties? Security_group;
        /// <summary>
        /// The server state
        /// </summary>
        public readonly Pulumi.ScalewayInstances.Servers.ScalewayInstanceV1ServerState? State;
        /// <summary>
        /// The server state_detail
        /// </summary>
        public readonly string? State_detail;
        /// <summary>
        /// The server associated tags
        /// </summary>
        public readonly ImmutableArray<string> Tags;
        /// <summary>
        /// The server volumes
        /// </summary>
        public readonly ImmutableDictionary<string, Outputs.ScalewayInstanceV1VolumeServer>? Volumes;
        /// <summary>
        /// The zone in which is the server
        /// </summary>
        public readonly string? Zone;

        [OutputConstructor]
        private ScalewayInstanceV1Server(
            ImmutableArray<Pulumi.ScalewayInstances.Servers.ScalewayInstanceV1ServerAllowedActionsItem> allowed_actions,

            Pulumi.ScalewayInstances.Servers.ScalewayInstanceV1ServerArch? arch,

            Pulumi.ScalewayInstances.Servers.ScalewayInstanceV1ServerBootType? boot_type,

            Outputs.ScalewayInstanceV1Bootscript? bootscript,

            string? commercial_type,

            string? creation_date,

            bool? dynamic_ip_required,

            bool? enable_ipv6,

            string? hostname,

            string? id,

            Outputs.ScalewayInstanceV1Image? image,

            Outputs.ScalewayInstanceV1ServerIpv6Properties? ipv6,

            Outputs.ScalewayInstanceV1ServerLocationProperties? location,

            ImmutableArray<Outputs.ScalewayInstanceV1ServerMaintenance> maintenances,

            string? modification_date,

            string? name,

            string? organization,

            Outputs.ScalewayInstanceV1PlacementGroup? placement_group,

            string? private_ip,

            ImmutableArray<Outputs.ScalewayInstanceV1PrivateNIC> private_nics,

            string? project,

            bool? @protected,

            Outputs.ScalewayInstanceV1ServerPublicIpProperties? public_ip,

            Outputs.ScalewayInstanceV1ServerSecurityGroupProperties? security_group,

            Pulumi.ScalewayInstances.Servers.ScalewayInstanceV1ServerState? state,

            string? state_detail,

            ImmutableArray<string> tags,

            ImmutableDictionary<string, Outputs.ScalewayInstanceV1VolumeServer>? volumes,

            string? zone)
        {
            Allowed_actions = allowed_actions;
            Arch = arch;
            Boot_type = boot_type;
            Bootscript = bootscript;
            Commercial_type = commercial_type;
            Creation_date = creation_date;
            Dynamic_ip_required = dynamic_ip_required;
            Enable_ipv6 = enable_ipv6;
            Hostname = hostname;
            Id = id;
            Image = image;
            Ipv6 = ipv6;
            Location = location;
            Maintenances = maintenances;
            Modification_date = modification_date;
            Name = name;
            Organization = organization;
            Placement_group = placement_group;
            Private_ip = private_ip;
            Private_nics = private_nics;
            Project = project;
            Protected = @protected;
            Public_ip = public_ip;
            Security_group = security_group;
            State = state;
            State_detail = state_detail;
            Tags = tags;
            Volumes = volumes;
            Zone = zone;
        }
    }
}
