/// <summary>
 /// Initializes a new instance of the <see cref="AuthzGrant" /> class.
 /// </summary>
 /// <param name="SubjectId">SubjectId.</param>
 /// <param name="Division">Division.</param>
 /// <param name="Role">Role.</param>
 /// <param name="GrantMadeAt">Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss[.mmm]Z.</param>
 public AuthzGrant(string SubjectId = null, AuthzDivision Division = null, AuthzGrantRole Role = null, DateTime?GrantMadeAt = null)
 {
     this.SubjectId   = SubjectId;
     this.Division    = Division;
     this.Role        = Role;
     this.GrantMadeAt = GrantMadeAt;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="Flow" /> class.
        /// </summary>



        /// <param name="Name">The flow name (required).</param>



        /// <param name="Description">Description.</param>



        /// <param name="Division">Division.</param>



        /// <param name="Type">Type.</param>



        /// <param name="LockedUser">LockedUser.</param>



        /// <param name="Active">Active.</param>



        /// <param name="System">System.</param>



        /// <param name="Deleted">Deleted.</param>



        /// <param name="PublishedVersion">PublishedVersion.</param>



        /// <param name="SavedVersion">SavedVersion.</param>



        /// <param name="InputSchema">json schema describing the inputs for the flow.</param>



        /// <param name="OutputSchema">json schema describing the outputs for the flow.</param>



        /// <param name="CheckedInVersion">CheckedInVersion.</param>



        /// <param name="PublishedBy">PublishedBy.</param>



        /// <param name="CurrentOperation">CurrentOperation.</param>



        public Flow(string Name = null, string Description = null, AuthzDivision Division = null, TypeEnum?Type = null, User LockedUser = null, bool?Active = null, bool?System = null, bool?Deleted = null, FlowVersion PublishedVersion = null, FlowVersion SavedVersion = null, Object InputSchema = null, Object OutputSchema = null, FlowVersion CheckedInVersion = null, User PublishedBy = null, Operation CurrentOperation = null)
        {
            // to ensure "Name" is required (not null)
            if (Name == null)
            {
                throw new InvalidDataException("Name is a required property for Flow and cannot be null");
            }
            else
            {
                this.Name = Name;
            }



            this.Description = Description;



            this.Division = Division;



            this.Type = Type;



            this.LockedUser = LockedUser;



            this.Active = Active;



            this.System = System;



            this.Deleted = Deleted;



            this.PublishedVersion = PublishedVersion;



            this.SavedVersion = SavedVersion;



            this.InputSchema = InputSchema;



            this.OutputSchema = OutputSchema;



            this.CheckedInVersion = CheckedInVersion;



            this.PublishedBy = PublishedBy;



            this.CurrentOperation = CurrentOperation;
        }