Esempio n. 1
0
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="ShareFolderArg" /> class.</para>
        /// </summary>
        /// <param name="path">The path to the folder to share. If it does not exist, then a
        /// new one is created.</param>
        /// <param name="memberPolicy">Who can be a member of this shared folder. Only
        /// applicable if the current user is on a team.</param>
        /// <param name="aclUpdatePolicy">Who can add and remove members of this shared
        /// folder.</param>
        /// <param name="sharedLinkPolicy">The policy to apply to shared links created for
        /// content inside this shared folder.  The current user must be on a team to set this
        /// policy to <see cref="Dropbox.Api.Sharing.SharedLinkPolicy.Members" />.</param>
        /// <param name="forceAsync">Whether to force the share to happen
        /// asynchronously.</param>
        public ShareFolderArg(string path,
                              MemberPolicy memberPolicy         = null,
                              AclUpdatePolicy aclUpdatePolicy   = null,
                              SharedLinkPolicy sharedLinkPolicy = null,
                              bool forceAsync = false)
        {
            if (path == null)
            {
                throw new sys.ArgumentNullException("path");
            }
            if (!re.Regex.IsMatch(path, @"\A(?:/(.|[\r\n])*)\z"))
            {
                throw new sys.ArgumentOutOfRangeException("path", @"Value should match pattern '\A(?:/(.|[\r\n])*)\z'");
            }

            if (memberPolicy == null)
            {
                memberPolicy = Dropbox.Api.Sharing.MemberPolicy.Anyone.Instance;
            }
            if (aclUpdatePolicy == null)
            {
                aclUpdatePolicy = Dropbox.Api.Sharing.AclUpdatePolicy.Owner.Instance;
            }
            if (sharedLinkPolicy == null)
            {
                sharedLinkPolicy = Dropbox.Api.Sharing.SharedLinkPolicy.Anyone.Instance;
            }
            this.Path             = path;
            this.MemberPolicy     = memberPolicy;
            this.AclUpdatePolicy  = aclUpdatePolicy;
            this.SharedLinkPolicy = sharedLinkPolicy;
            this.ForceAsync       = forceAsync;
        }
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="ShareFolderArgBase" />
        /// class.</para>
        /// </summary>
        /// <param name="path">The path to the folder to share. If it does not exist, then a
        /// new one is created.</param>
        /// <param name="aclUpdatePolicy">Who can add and remove members of this shared
        /// folder.</param>
        /// <param name="forceAsync">Whether to force the share to happen
        /// asynchronously.</param>
        /// <param name="memberPolicy">Who can be a member of this shared folder. Only
        /// applicable if the current user is on a team.</param>
        /// <param name="sharedLinkPolicy">The policy to apply to shared links created for
        /// content inside this shared folder.  The current user must be on a team to set this
        /// policy to <see cref="Dropbox.Api.Sharing.SharedLinkPolicy.Members" />.</param>
        /// <param name="viewerInfoPolicy">Who can enable/disable viewer info for this shared
        /// folder.</param>
        /// <param name="accessInheritance">The access inheritance settings for the
        /// folder.</param>
        public ShareFolderArgBase(string path,
                                  AclUpdatePolicy aclUpdatePolicy = null,
                                  bool forceAsync                     = false,
                                  MemberPolicy memberPolicy           = null,
                                  SharedLinkPolicy sharedLinkPolicy   = null,
                                  ViewerInfoPolicy viewerInfoPolicy   = null,
                                  AccessInheritance accessInheritance = null)
        {
            if (path == null)
            {
                throw new sys.ArgumentNullException("path");
            }
            if (!re.Regex.IsMatch(path, @"\A(?:(/(.|[\r\n])*)|(ns:[0-9]+(/.*)?))\z"))
            {
                throw new sys.ArgumentOutOfRangeException("path", @"Value should match pattern '\A(?:(/(.|[\r\n])*)|(ns:[0-9]+(/.*)?))\z'");
            }

            if (accessInheritance == null)
            {
                accessInheritance = global::Dropbox.Api.Sharing.AccessInheritance.Inherit.Instance;
            }
            this.Path              = path;
            this.AclUpdatePolicy   = aclUpdatePolicy;
            this.ForceAsync        = forceAsync;
            this.MemberPolicy      = memberPolicy;
            this.SharedLinkPolicy  = sharedLinkPolicy;
            this.ViewerInfoPolicy  = viewerInfoPolicy;
            this.AccessInheritance = accessInheritance;
        }
Esempio n. 3
0
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="FullSharedFolderMetadata" />
        /// class.</para>
        /// </summary>
        /// <param name="name">The name of the this shared folder.</param>
        /// <param name="id">The ID of the shared folder.</param>
        /// <param name="accessType">Who can access this shared folder.</param>
        /// <param name="sharedLinkPolicy">Who links can be shared with.</param>
        /// <param name="membership">The list of user members of the shared folder.</param>
        /// <param name="groups">The list of group members of the shared folder.</param>
        /// <param name="pathLower">The lower-cased full path of this shared folder. Absent for
        /// unmounted folders.</param>
        public FullSharedFolderMetadata(string name,
                                        string id,
                                        AccessType accessType,
                                        SharedLinkPolicy sharedLinkPolicy,
                                        col.IEnumerable <UserMembershipInfo> membership,
                                        col.IEnumerable <GroupMembershipInfo> groups,
                                        string pathLower = null)
            : base(name, id, accessType, sharedLinkPolicy, pathLower)
        {
            var membershipList = new col.List <UserMembershipInfo>(membership ?? new UserMembershipInfo[0]);

            if (membership == null)
            {
                throw new sys.ArgumentNullException("membership");
            }

            var groupsList = new col.List <GroupMembershipInfo>(groups ?? new GroupMembershipInfo[0]);

            if (groups == null)
            {
                throw new sys.ArgumentNullException("groups");
            }

            this.Membership = membershipList;
            this.Groups     = groupsList;
        }
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="ShareFolderArg" /> class.</para>
        /// </summary>
        /// <param name="path">The path to the folder to share. If it does not exist, then a
        /// new one is created.</param>
        /// <param name="memberPolicy">Who can be a member of this shared folder. Only
        /// applicable if the current user is on a team.</param>
        /// <param name="aclUpdatePolicy">Who can add and remove members of this shared
        /// folder.</param>
        /// <param name="sharedLinkPolicy">The policy to apply to shared links created for
        /// content inside this shared folder.  The current user must be on a team to set this
        /// policy to <see cref="Dropbox.Api.Sharing.SharedLinkPolicy.Members" />.</param>
        /// <param name="forceAsync">Whether to force the share to happen
        /// asynchronously.</param>
        /// <param name="actions">This is a list indicating whether each returned folder data
        /// entry will include a boolean field <see
        /// cref="Dropbox.Api.Sharing.FolderPermission.Allow" /> that describes whether the
        /// current user can perform the `FolderAction` on the folder.</param>
        /// <param name="linkSettings">Settings on the link for this folder.</param>
        /// <param name="viewerInfoPolicy">Who can enable/disable viewer info for this shared
        /// folder.</param>
        public ShareFolderArg(string path,
                              MemberPolicy memberPolicy         = null,
                              AclUpdatePolicy aclUpdatePolicy   = null,
                              SharedLinkPolicy sharedLinkPolicy = null,
                              bool forceAsync = false,
                              col.IEnumerable <FolderAction> actions = null,
                              LinkSettings linkSettings         = null,
                              ViewerInfoPolicy viewerInfoPolicy = null)
        {
            if (path == null)
            {
                throw new sys.ArgumentNullException("path");
            }
            if (!re.Regex.IsMatch(path, @"\A(?:(/(.|[\r\n])*)|(ns:[0-9]+(/.*)?))\z"))
            {
                throw new sys.ArgumentOutOfRangeException("path", @"Value should match pattern '\A(?:(/(.|[\r\n])*)|(ns:[0-9]+(/.*)?))\z'");
            }

            var actionsList = enc.Util.ToList(actions);

            this.Path             = path;
            this.MemberPolicy     = memberPolicy;
            this.AclUpdatePolicy  = aclUpdatePolicy;
            this.SharedLinkPolicy = sharedLinkPolicy;
            this.ForceAsync       = forceAsync;
            this.Actions          = actionsList;
            this.LinkSettings     = linkSettings;
            this.ViewerInfoPolicy = viewerInfoPolicy;
        }
Esempio n. 5
0
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="UpdateFolderPolicyArg" />
        /// class.</para>
        /// </summary>
        /// <param name="sharedFolderId">The ID for the shared folder.</param>
        /// <param name="memberPolicy">Who can be a member of this shared folder. Only
        /// applicable if the current user is on a team.</param>
        /// <param name="aclUpdatePolicy">Who can add and remove members of this shared
        /// folder.</param>
        /// <param name="viewerInfoPolicy">Who can enable/disable viewer info for this shared
        /// folder.</param>
        /// <param name="sharedLinkPolicy">The policy to apply to shared links created for
        /// content inside this shared folder. The current user must be on a team to set this
        /// policy to <see cref="Dropbox.Api.Sharing.SharedLinkPolicy.Members" />.</param>
        /// <param name="linkSettings">Settings on the link for this folder.</param>
        /// <param name="actions">A list of `FolderAction`s corresponding to
        /// `FolderPermission`s that should appear in the  response's <see
        /// cref="Dropbox.Api.Sharing.SharedFolderMetadata.Permissions" /> field describing the
        /// actions the  authenticated user can perform on the folder.</param>
        public UpdateFolderPolicyArg(string sharedFolderId,
                                     MemberPolicy memberPolicy              = null,
                                     AclUpdatePolicy aclUpdatePolicy        = null,
                                     ViewerInfoPolicy viewerInfoPolicy      = null,
                                     SharedLinkPolicy sharedLinkPolicy      = null,
                                     LinkSettings linkSettings              = null,
                                     col.IEnumerable <FolderAction> actions = null)
        {
            if (sharedFolderId == null)
            {
                throw new sys.ArgumentNullException("sharedFolderId");
            }
            if (!re.Regex.IsMatch(sharedFolderId, @"\A(?:[-_0-9a-zA-Z:]+)\z"))
            {
                throw new sys.ArgumentOutOfRangeException("sharedFolderId", @"Value should match pattern '\A(?:[-_0-9a-zA-Z:]+)\z'");
            }

            var actionsList = enc.Util.ToList(actions);

            this.SharedFolderId   = sharedFolderId;
            this.MemberPolicy     = memberPolicy;
            this.AclUpdatePolicy  = aclUpdatePolicy;
            this.ViewerInfoPolicy = viewerInfoPolicy;
            this.SharedLinkPolicy = sharedLinkPolicy;
            this.LinkSettings     = linkSettings;
            this.Actions          = actionsList;
        }
Esempio n. 6
0
 /// <summary>
 /// <para>Initializes a new instance of the <see cref="BasicSharedFolderMetadata" />
 /// class.</para>
 /// </summary>
 /// <param name="name">The name of the this shared folder.</param>
 /// <param name="id">The ID of the shared folder.</param>
 /// <param name="accessType">Who can access this shared folder.</param>
 /// <param name="sharedLinkPolicy">Who links can be shared with.</param>
 /// <param name="pathLower">The lower-cased full path of this shared folder. Absent for
 /// unmounted folders.</param>
 public BasicSharedFolderMetadata(string name,
                                  string id,
                                  AccessType accessType,
                                  SharedLinkPolicy sharedLinkPolicy,
                                  string pathLower = null)
     : base(name, id, accessType, sharedLinkPolicy, pathLower)
 {
 }
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="ShareFolderArg" /> class.</para>
        /// </summary>
        /// <param name="path">The path to the folder to share. If it does not exist, then a
        /// new one is created.</param>
        /// <param name="aclUpdatePolicy">Who can add and remove members of this shared
        /// folder.</param>
        /// <param name="forceAsync">Whether to force the share to happen
        /// asynchronously.</param>
        /// <param name="memberPolicy">Who can be a member of this shared folder. Only
        /// applicable if the current user is on a team.</param>
        /// <param name="sharedLinkPolicy">The policy to apply to shared links created for
        /// content inside this shared folder.  The current user must be on a team to set this
        /// policy to <see cref="Dropbox.Api.Sharing.SharedLinkPolicy.Members" />.</param>
        /// <param name="viewerInfoPolicy">Who can enable/disable viewer info for this shared
        /// folder.</param>
        /// <param name="actions">A list of `FolderAction`s corresponding to
        /// `FolderPermission`s that should appear in the  response's <see
        /// cref="Dropbox.Api.Sharing.SharedFolderMetadata.Permissions" /> field describing the
        /// actions the  authenticated user can perform on the folder.</param>
        /// <param name="linkSettings">Settings on the link for this folder.</param>
        public ShareFolderArg(string path,
                              AclUpdatePolicy aclUpdatePolicy = null,
                              bool forceAsync                        = false,
                              MemberPolicy memberPolicy              = null,
                              SharedLinkPolicy sharedLinkPolicy      = null,
                              ViewerInfoPolicy viewerInfoPolicy      = null,
                              col.IEnumerable <FolderAction> actions = null,
                              LinkSettings linkSettings              = null)
            : base(path, aclUpdatePolicy, forceAsync, memberPolicy, sharedLinkPolicy, viewerInfoPolicy)
        {
            var actionsList = enc.Util.ToList(actions);

            this.Actions      = actionsList;
            this.LinkSettings = linkSettings;
        }
Esempio n. 8
0
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="FolderPolicy" /> class.</para>
        /// </summary>
        /// <param name="aclUpdatePolicy">Who can add and remove members from this shared
        /// folder.</param>
        /// <param name="sharedLinkPolicy">Who links can be shared with.</param>
        /// <param name="memberPolicy">Who can be a member of this shared folder. Only set if
        /// the user is a member of a team.</param>
        public FolderPolicy(AclUpdatePolicy aclUpdatePolicy,
                            SharedLinkPolicy sharedLinkPolicy,
                            MemberPolicy memberPolicy = null)
        {
            if (aclUpdatePolicy == null)
            {
                throw new sys.ArgumentNullException("aclUpdatePolicy");
            }

            if (sharedLinkPolicy == null)
            {
                throw new sys.ArgumentNullException("sharedLinkPolicy");
            }

            this.AclUpdatePolicy  = aclUpdatePolicy;
            this.SharedLinkPolicy = sharedLinkPolicy;
            this.MemberPolicy     = memberPolicy;
        }
Esempio n. 9
0
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="UpdateFolderPolicyArg" />
        /// class.</para>
        /// </summary>
        /// <param name="sharedFolderId">The ID for the shared folder.</param>
        /// <param name="memberPolicy">Who can be a member of this shared folder. Only
        /// applicable if the current user is on a team.</param>
        /// <param name="aclUpdatePolicy">Who can add and remove members of this shared
        /// folder.</param>
        /// <param name="sharedLinkPolicy">The policy to apply to shared links created for
        /// content inside this shared folder. The current user must be on a team to set this
        /// policy to <see cref="Dropbox.Api.Sharing.SharedLinkPolicy.Members" />.</param>
        public UpdateFolderPolicyArg(string sharedFolderId,
                                     MemberPolicy memberPolicy         = null,
                                     AclUpdatePolicy aclUpdatePolicy   = null,
                                     SharedLinkPolicy sharedLinkPolicy = null)
        {
            if (sharedFolderId == null)
            {
                throw new sys.ArgumentNullException("sharedFolderId");
            }
            if (!re.Regex.IsMatch(sharedFolderId, @"\A(?:[-_0-9a-zA-Z:]+)\z"))
            {
                throw new sys.ArgumentOutOfRangeException("sharedFolderId", @"Value should match pattern '\A(?:[-_0-9a-zA-Z:]+)\z'");
            }

            this.SharedFolderId   = sharedFolderId;
            this.MemberPolicy     = memberPolicy;
            this.AclUpdatePolicy  = aclUpdatePolicy;
            this.SharedLinkPolicy = sharedLinkPolicy;
        }
Esempio n. 10
0
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="UpdateFolderPolicyArg" />
        /// class.</para>
        /// </summary>
        /// <param name="sharedFolderId">The ID for the shared folder.</param>
        /// <param name="memberPolicy">Who can be a member of this shared folder. Only set this
        /// if the current user is on a team.</param>
        /// <param name="aclUpdatePolicy">Who can add and remove members of this shared
        /// folder.</param>
        /// <param name="sharedLinkPolicy">The policy to apply to shared links created for
        /// content inside this shared folder.</param>
        public UpdateFolderPolicyArg(string sharedFolderId,
                                     MemberPolicy memberPolicy         = null,
                                     AclUpdatePolicy aclUpdatePolicy   = null,
                                     SharedLinkPolicy sharedLinkPolicy = null)
        {
            if (sharedFolderId == null)
            {
                throw new sys.ArgumentNullException("sharedFolderId");
            }
            else if (!re.Regex.IsMatch(sharedFolderId, @"[-_0-9a-zA-Z]+"))
            {
                throw new sys.ArgumentOutOfRangeException("sharedFolderId");
            }

            this.SharedFolderId   = sharedFolderId;
            this.MemberPolicy     = memberPolicy;
            this.AclUpdatePolicy  = aclUpdatePolicy;
            this.SharedLinkPolicy = sharedLinkPolicy;
        }
Esempio n. 11
0
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="FolderPolicy" /> class.</para>
        /// </summary>
        /// <param name="aclUpdatePolicy">Who can add and remove members from this shared
        /// folder.</param>
        /// <param name="sharedLinkPolicy">Who links can be shared with.</param>
        /// <param name="memberPolicy">Who can be a member of this shared folder, as set on the
        /// folder itself. The effective policy may differ from this value if the team-wide
        /// policy is more restrictive. Present only if the folder is owned by a team.</param>
        /// <param name="resolvedMemberPolicy">Who can be a member of this shared folder,
        /// taking into account both the folder and the team-wide policy. This value may differ
        /// from that of member_policy if the team-wide policy is more restrictive than the
        /// folder policy. Present only if the folder is owned by a team.</param>
        /// <param name="viewerInfoPolicy">Who can enable/disable viewer info for this shared
        /// folder.</param>
        public FolderPolicy(AclUpdatePolicy aclUpdatePolicy,
                            SharedLinkPolicy sharedLinkPolicy,
                            MemberPolicy memberPolicy         = null,
                            MemberPolicy resolvedMemberPolicy = null,
                            ViewerInfoPolicy viewerInfoPolicy = null)
        {
            if (aclUpdatePolicy == null)
            {
                throw new sys.ArgumentNullException("aclUpdatePolicy");
            }

            if (sharedLinkPolicy == null)
            {
                throw new sys.ArgumentNullException("sharedLinkPolicy");
            }

            this.AclUpdatePolicy      = aclUpdatePolicy;
            this.SharedLinkPolicy     = sharedLinkPolicy;
            this.MemberPolicy         = memberPolicy;
            this.ResolvedMemberPolicy = resolvedMemberPolicy;
            this.ViewerInfoPolicy     = viewerInfoPolicy;
        }
Esempio n. 12
0
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="ShareFolderArg" /> class.</para>
        /// </summary>
        /// <param name="path">The path to the folder to share. If it does not exist, then a
        /// new one is created.</param>
        /// <param name="memberPolicy">Who can be a member of this shared folder.</param>
        /// <param name="aclUpdatePolicy">Who can add and remove members of this shared
        /// folder.</param>
        /// <param name="sharedLinkPolicy">The policy to apply to shared links created for
        /// content inside this shared folder.</param>
        /// <param name="forceAsync">Whether to force the share to happen
        /// asynchronously.</param>
        public ShareFolderArg(string path,
                              MemberPolicy memberPolicy         = null,
                              AclUpdatePolicy aclUpdatePolicy   = null,
                              SharedLinkPolicy sharedLinkPolicy = null,
                              bool forceAsync = false)
        {
            if (path == null)
            {
                throw new sys.ArgumentNullException("path");
            }
            else if (!re.Regex.IsMatch(path, @"\A(?:/.*)\z"))
            {
                throw new sys.ArgumentOutOfRangeException("path");
            }

            if (memberPolicy == null)
            {
                memberPolicy = MemberPolicy.Anyone.Instance;
            }

            if (aclUpdatePolicy == null)
            {
                aclUpdatePolicy = AclUpdatePolicy.Owner.Instance;
            }

            if (sharedLinkPolicy == null)
            {
                sharedLinkPolicy = SharedLinkPolicy.Anyone.Instance;
            }

            this.Path             = path;
            this.MemberPolicy     = memberPolicy;
            this.AclUpdatePolicy  = aclUpdatePolicy;
            this.SharedLinkPolicy = sharedLinkPolicy;
            this.ForceAsync       = forceAsync;
        }
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="SharedFolderMetadata" />
        /// class.</para>
        /// </summary>
        /// <param name="name">The name of the this shared folder.</param>
        /// <param name="id">The ID of the shared folder.</param>
        /// <param name="accessType">Who can access this shared folder.</param>
        /// <param name="sharedLinkPolicy">Who links can be shared with.</param>
        /// <param name="pathLower">The lower-cased full path of this shared folder. Absent for
        /// unmounted folders.</param>
        protected SharedFolderMetadata(string name,
                                       string id,
                                       AccessType accessType,
                                       SharedLinkPolicy sharedLinkPolicy,
                                       string pathLower = null)
        {
            if (name == null)
            {
                throw new sys.ArgumentNullException("name");
            }

            if (id == null)
            {
                throw new sys.ArgumentNullException("id");
            }
            else if (!re.Regex.IsMatch(id, @"[-_0-9a-zA-Z]+"))
            {
                throw new sys.ArgumentOutOfRangeException("id");
            }

            if (accessType == null)
            {
                throw new sys.ArgumentNullException("accessType");
            }

            if (sharedLinkPolicy == null)
            {
                throw new sys.ArgumentNullException("sharedLinkPolicy");
            }

            this.Name             = name;
            this.Id               = id;
            this.AccessType       = accessType;
            this.SharedLinkPolicy = sharedLinkPolicy;
            this.PathLower        = pathLower;
        }