public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonWorkDocsConfig config = new AmazonWorkDocsConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonWorkDocsClient client = new AmazonWorkDocsClient(creds, config);

            DescribeUsersResponse resp = new DescribeUsersResponse();

            do
            {
                DescribeUsersRequest req = new DescribeUsersRequest
                {
                    Marker = resp.Marker
                    ,
                    Limit = maxItems
                };

                resp = client.DescribeUsers(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.Users)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.Marker));
        }
        public static void Sample()
        {
            // Based on WorkDocs dev guide code at http://docs.aws.amazon.com/workdocs/latest/developerguide/connect-workdocs-role.html
            var wdClient = new AmazonWorkDocsClient(region: RegionEndpoint.USWest2);

            String orgId = "d-123456789c";
            String userEmail = "*****@*****.**";
            String workdocsName = "test.txt";
            String downloadDocFullName = "C:\\test.txt";

            var docInfo = GetDocumentDownloadInfo(wdClient, orgId, userEmail, workdocsName);
            if(docInfo.Count > 0)
            {
                String documentId = docInfo["documentId"];
                String versionId = docInfo["versionId"];

                if(!String.IsNullOrEmpty(documentId) && !String.IsNullOrEmpty(versionId))
                {
                    String downloadUrl = GetDownloadDocumentURL(wdClient, documentId, versionId);
                    using (var client = new WebClient())
                        client.DownloadFile(downloadUrl, downloadDocFullName);
                }
                else
                    Console.WriteLine("Could not get info about workdoc {0}", workdocsName);
            }
            else
                Console.WriteLine("Could not get info about workdoc {0}", workdocsName);
        }
        private static Dictionary<String, String> GetDocumentDownloadInfo(AmazonWorkDocsClient wdClient, String orgId, String user, String docName)
        {
            var documentInfoMap = new Dictionary<String, String>();
            var userFolderId = GetUserFolderId(wdClient, orgId, user);
            if(!String.IsNullOrEmpty(userFolderId))
            {
                var wdDescribeFolderContentsRequest = new DescribeFolderContentsRequest()
                {
                    FolderId = userFolderId
                };

                String marker = null;
                bool docNameFound = false;
                do
                {
                    wdDescribeFolderContentsRequest.Marker = marker;
                    var result = wdClient.DescribeFolderContents(wdDescribeFolderContentsRequest);
                    foreach(var document in result.Documents)
                    {
                        if(document.LatestVersionMetadata.Name == docName)
                        {
                            documentInfoMap.Add("documentId", document.Id);
                            documentInfoMap.Add("versionId", document.LatestVersionMetadata.Id);
                            docNameFound = true;
                            break;
                        }
                    }
                    marker = result.Marker;
                } while (!docNameFound && String.IsNullOrEmpty(marker));
            }
            else
                Console.WriteLine("Could not get user folder");

            return documentInfoMap;
        }
Exemplo n.º 4
0
        public static void Sample()
        {
            // Based on WorkDocs dev guide code at http://docs.aws.amazon.com/workdocs/latest/developerguide/connect-workdocs-iam.html
            var wdClient = new AmazonWorkDocsClient(region: RegionEndpoint.USWest2);

            var request = new DescribeUsersRequest()
            {
                OrganizationId = "d-123456789c"
            };

            // Get all of the users
            var    wdUsers = new List <User>();
            String marker  = null;

            do
            {
                request.Marker = marker;
                var result = wdClient.DescribeUsers(request);
                wdUsers.AddRange(result.Users);
                marker = result.Marker;
            } while (String.IsNullOrEmpty(marker));

            Console.WriteLine("List of {0} users:", wdUsers.Count);
            foreach (var wdUser in wdUsers)
            {
                Console.WriteLine("Firstname:{0} | Lastname:{1} | Email:{2} | root-folder-id:{3}\n",
                                  wdUser.GivenName, wdUser.Surname, wdUser.EmailAddress, wdUser.RootFolderId);
            }
        }
 private static String GetDownloadDocumentURL(AmazonWorkDocsClient workDocs, String docId, String versionId)
 {
     GetDocumentVersionRequest request = new GetDocumentVersionRequest()
     {
         DocumentId = docId,
         VersionId = versionId,
         Fields = "SOURCE"
     };
     var result = workDocs.GetDocumentVersion(request);
     return result.Metadata.Source[DocumentSourceType.ORIGINAL];
 }
Exemplo n.º 6
0
        protected IAmazonWorkDocs CreateClient(AWSCredentials credentials, RegionEndpoint region)
        {
            var config = new AmazonWorkDocsConfig {
                RegionEndpoint = region
            };

            Amazon.PowerShell.Utils.Common.PopulateConfig(this, config);
            this.CustomizeClientConfig(config);
            var client = new AmazonWorkDocsClient(credentials, config);

            client.BeforeRequestEvent += RequestEventHandler;
            client.AfterResponseEvent += ResponseEventHandler;
            return(client);
        }
        private static String GetUserFolderId(AmazonWorkDocsClient wdClient, String orgId, String user)
        {
            var wdDescribeUsersRequest = new DescribeUsersRequest()
            {
                Marker = null,
                OrganizationId = orgId,
                Query = user
            };

            var wdDescribeUsersResponse = wdClient.DescribeUsers(wdDescribeUsersRequest);
            // Return the first matching user root folder id
            if (wdDescribeUsersResponse.Users.Count > 0)
                return wdDescribeUsersResponse.Users[0].RootFolderId;
            return String.Empty;
        }
Exemplo n.º 8
0
        private static Dictionary <String, String> GetDocumentUploadInfo(AmazonWorkDocsClient wdClient, String orgId, String user, String docName)
        {
            String folderId = GetUserFolderId(wdClient, orgId, user);

            var request = new InitiateDocumentVersionUploadRequest()
            {
                Name           = docName,
                ParentFolderId = folderId,
                ContentType    = "application/octet-stream"
            };

            var result = wdClient.InitiateDocumentVersionUpload(request);

            var documentInfoMap = new Dictionary <String, String>();

            documentInfoMap.Add("documentId", result.Metadata.Id);
            documentInfoMap.Add("versionId", result.Metadata.LatestVersionMetadata.Id);
            documentInfoMap.Add("uploadURL", result.UploadMetadata.UploadUrl);

            return(documentInfoMap);
        }
Exemplo n.º 9
0
        public static void Sample()
        {
            // Based on WorkDocs dev guide code at http://docs.aws.amazon.com/workdocs/latest/developerguide/connect-workdocs-role.html
            var wdClient = new AmazonWorkDocsClient(region: RegionEndpoint.USWest2);

            String orgId        = "d-123456789c";
            String userEmail    = "*****@*****.**";
            String userFolderId = GetUserFolderId(wdClient, orgId, userEmail);

            var wdDescribeFolderContentsRequest = new DescribeFolderContentsRequest()
            {
                FolderId = userFolderId
            };

            // Get all of the folders
            var    wdUserDocuments = new List <DocumentMetadata>();
            String marker          = null;

            do
            {
                wdDescribeFolderContentsRequest.Marker = marker;
                var result = wdClient.DescribeFolderContents(wdDescribeFolderContentsRequest);
                wdUserDocuments.AddRange(result.Documents);
                marker = result.Marker;
            } while (String.IsNullOrEmpty(marker));

            Console.WriteLine("Docs for user {0}:", userEmail);
            foreach (var document in wdUserDocuments)
            {
                var md = document.LatestVersionMetadata;
                Console.WriteLine("Name:           {0}", md.Name);
                Console.WriteLine("Size (bytes):   {0}", md.Size);
                Console.WriteLine("Last modified:  {0}", md.ModifiedTimestamp);
                Console.WriteLine("Doc ID:         {0}", document.Id);
                Console.WriteLine();
            }
        }