/// <summary>
        /// Initializes a new instance of the <see cref="VacancyPublishedEvent" /> class.
        /// </summary>
        /// <param name="id">ID of the vacancy (required).</param>
        /// <param name="duty">duty (required).</param>
        public VacancyPublishedEvent(string id = default(string), Duty duty = default(Duty))
        {
            // to ensure "id" is required (not null)
            if (id == null)
            {
                throw new InvalidDataException("id is a required property for VacancyPublishedEvent and cannot be null");
            }
            else
            {
                this.Id = id;
            }

            // to ensure "duty" is required (not null)
            if (duty == null)
            {
                throw new InvalidDataException("duty is a required property for VacancyPublishedEvent and cannot be null");
            }
            else
            {
                this.Duty = duty;
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="DutyAssignmentRedeploymentEventAllOf" /> class.
 /// </summary>
 /// <param name="assignmentNumber">assignmentNumber.</param>
 /// <param name="originalDuty">originalDuty.</param>
 /// <param name="newDuty">newDuty.</param>
 public DutyAssignmentRedeploymentEventAllOf(string assignmentNumber = default(string), Duty originalDuty = default(Duty), Duty newDuty = default(Duty))
 {
     this.AssignmentNumber = assignmentNumber;
     this.OriginalDuty     = originalDuty;
     this.NewDuty          = newDuty;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DutyUpdatedEventAllOf" /> class.
 /// </summary>
 /// <param name="duty">duty.</param>
 public DutyUpdatedEventAllOf(Duty duty = default(Duty))
 {
     this.Duty = duty;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DutyAssignmentRedeploymentEvent" /> class.
 /// </summary>
 /// <param name="assignmentNumber">assignmentNumber.</param>
 /// <param name="originalDuty">originalDuty.</param>
 /// <param name="newDuty">newDuty.</param>
 public DutyAssignmentRedeploymentEvent(string assignmentNumber = default(string), Duty originalDuty = default(Duty), Duty newDuty = default(Duty), string eventType = default(string)) : base(eventType)
 {
     this.AssignmentNumber = assignmentNumber;
     this.OriginalDuty     = originalDuty;
     this.NewDuty          = newDuty;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DutyUpdatedEvent" /> class.
 /// </summary>
 /// <param name="duty">duty.</param>
 /// <param name="eventType">eventType (required).</param>
 public DutyUpdatedEvent(Duty duty = default(Duty), string eventType = default(string)) : base(eventType)
 {
     this.Duty = duty;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="DutySendEvent" /> class.
        /// </summary>
        /// <param name="eventType">eventType (required).</param>
        /// <param name="destination">Where this duty has been sent.</param>
        /// <param name="duty">duty.</param>
        public DutySendEvent(string eventType = default(string), DestinationEnum?destination = default(DestinationEnum?), Duty duty = default(Duty))
        {
            // to ensure "eventType" is required (not null)
            if (eventType == null)
            {
                throw new InvalidDataException("eventType is a required property for DutySendEvent and cannot be null");
            }
            else
            {
                this.EventType = eventType;
            }

            this.Destination = destination;
            this.Duty        = duty;
        }