///GENMHASH:9E43D8BC283E297FB09F74B50D967B51:82D76CF0DAD29D42162C63B7BC7F03C3
        public SnapshotImpl WithSku(SnapshotSkuType sku)
        {
            SnapshotSku snapshotSku = new SnapshotSku
            {
                Name = sku.AccountType
            };

            Inner.Sku = snapshotSku;
            return(this);
        }
 ///GENMHASH:9EF4A08D221595621FDCAFD7FD09AFE2:9F5E274C5B39892886E4AC37B1E8AB04
 public SnapshotSkuType SkuType()
 {
     if (this.Inner.Sku == null)
     {
         return(null);
     }
     else
     {
         return(SnapshotSkuType.FromSnapshotSku(this.Inner.Sku));
     }
 }
        public override bool Equals(object obj)
        {
            string value = this.ToString();

            if (!(obj is SnapshotSkuType))
            {
                return(false);
            }

            if (ReferenceEquals(obj, this))
            {
                return(true);
            }
            SnapshotSkuType rhs = (SnapshotSkuType)obj;

            if (value == null)
            {
                return(rhs.value == null);
            }
            return(value.Equals(rhs.value.ToString()));
        }
 /// <summary>
 /// Specifies the SKU type.
 /// </summary>
 /// <param name="sku">SKU type.</param>
 /// <return>The next stage of the definition.</return>
 Snapshot.Definition.IWithCreate Snapshot.Definition.IWithSku.WithSku(SnapshotSkuType sku)
 {
     return(this.WithSku(sku) as Snapshot.Definition.IWithCreate);
 }
 /// <summary>
 /// Specifies the SKU type.
 /// </summary>
 /// <param name="sku">SKU type.</param>
 /// <return>The next stage of the update.</return>
 Snapshot.Update.IUpdate Snapshot.Update.IWithSku.WithSku(SnapshotSkuType sku)
 {
     return(this.WithSku(sku) as Snapshot.Update.IUpdate);
 }