|
/*
* NexPort Web API
*
* The NexPort Open Web API allows NexPort Campus Organizations to integrate, programatically, with remote systems. This is achieved by exposing most of the administrative features of Nexport through a JSON based, RPC style Web API.
*
* The version of the OpenAPI document: v1
* Contact: support@nexportcampus.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Linq;
using System.IO;
using System.Text;
using System.Collections.Generic;
using System.Runtime.Serialization;
using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations;
namespace NexportApi.Model
{
/// <summary>
/// CreateMembershipRequest
/// </summary>
[DataContract]
public class CreateMembershipRequest : IEquatable<CreateMembershipRequest>, IValidatableObject
{
/// <summary>
/// Initializes a new instance of the <see cref="CreateMembershipRequest" /> class.
/// </summary>
[JsonConstructor]
protected CreateMembershipRequest() { }
/// <summary>
/// Initializes a new instance of the <see cref="CreateMembershipRequest" /> class.
/// </summary>
/// <param name="groups">The the groups to give the user a membership in (required).</param>
/// <param name="userId">ID of the user to give memberships in each of the listed groups. The user must have subscriptions in the orgs that the groups belong to. (required).</param>
public CreateMembershipRequest(List<Guid> groups = default, Guid userId = default)
{
// to ensure "groups" is required (not null)
Groups = groups ?? throw new InvalidDataException("groups is a required property for CreateMembershipRequest and cannot be null");
UserId = userId;
}
/// <summary>
/// The the groups to give the user a membership in
/// </summary>
/// <value>The the groups to give the user a membership in</value>
[DataMember(Name = "groups", EmitDefaultValue = false)]
public List<Guid> Groups { get; set; }
/// <summary>
/// ID of the user to give memberships in each of the listed groups. The user must have subscriptions in the orgs that the groups belong to.
/// </summary>
/// <value>ID of the user to give memberships in each of the listed groups. The user must have subscriptions in the orgs that the groups belong to.</value>
[DataMember(Name = "user_id", EmitDefaultValue = false)]
public Guid UserId { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
var sb = new StringBuilder();
sb.Append("class CreateMembershipRequest {\n");
sb.Append(" Groups: ").Append(Groups).Append("\n");
sb.Append(" UserId: ").Append(UserId).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return JsonConvert.SerializeObject(this, Formatting.Indented);
}
/// <summary>
/// Returns true if objects are equal
/// </summary>
/// <param name="input">Object to be compared</param>
/// <returns>Boolean</returns>
public override bool Equals(object input)
{
return Equals(input as CreateMembershipRequest);
}
/// <summary>
/// Returns true if CreateMembershipRequest instances are equal
/// </summary>
/// <param name="input">Instance of CreateMembershipRequest to be compared</param>
/// <returns>Boolean</returns>
public bool Equals(CreateMembershipRequest input)
{
if (input == null)
return false;
return
(
Groups == input.Groups ||
Groups != null &&
Groups.SequenceEqual(input.Groups)
) &&
(
UserId == input.UserId ||
(UserId.Equals(input.UserId))
);
}
/// <summary>
/// Gets the hash code
/// </summary>
/// <returns>Hash code</returns>
public override int GetHashCode()
{
unchecked // Overflow is fine, just wrap
{
var hashCode = 41;
if (Groups != null)
hashCode = hashCode * 59 + Groups.GetHashCode();
hashCode = hashCode * 59 + UserId.GetHashCode();
return hashCode;
}
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}
}
}
|
Loading...