<filename>cadl-output/csharp/RegistrationDescription.cs<gh_stars>0// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

// <auto-generated/>

#nullable disable

using System;
using System.Collections.Generic;
using Azure.Core;

namespace NotificationHubs.Models
{
    /// <summary> Represents an Azure Notification Hubs registration description. </summary>
    public partial class RegistrationDescription
    {
        /// <summary> Initializes a new instance of RegistrationDescription. </summary>
        public RegistrationDescription()
        {
            PushVariables = new ChangeTrackingDictionary<string, string>();
        }
        /// <summary> Initializes a new instance of RegistrationDescription. </summary>
        /// <param name="registrationId"></param>
        /// <param name="tags"></param>
        /// <param name="etag"></param>
        /// <param name="pushVariables"></param>
        /// <param name="expirationTime"></param>
        internal RegistrationDescription(string registrationId, string tags, string etag, IDictionary<string, string> pushVariables, DateTimeOffset? expirationTime)
        {
            RegistrationId = registrationId;
            Tags = tags;
            Etag = etag;
            PushVariables = pushVariables;
            ExpirationTime = expirationTime;
        }

        public string RegistrationId { get; set; }

        public string Tags { get; set; }

        public string Etag { get; set; }

        public IDictionary<string, string> PushVariables { get; }

        public DateTimeOffset? ExpirationTime { get; set; }
    }
}
