diff --git a/AWS_Cloudberry_setup/App.config b/AWS_Cloudberry_setup/App.config
new file mode 100644
index 0000000..f28b704
--- /dev/null
+++ b/AWS_Cloudberry_setup/App.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AWS_Cloudberry_setup/Logo.png b/AWS_Cloudberry_setup/Logo.png
new file mode 100644
index 0000000..17ae421
Binary files /dev/null and b/AWS_Cloudberry_setup/Logo.png differ
diff --git a/AWS_Cloudberry_setup/Properties/AssemblyInfo.cs b/AWS_Cloudberry_setup/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..d67226c
--- /dev/null
+++ b/AWS_Cloudberry_setup/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("TekBackupSetup")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("TekBackupSetup")]
+[assembly: AssemblyCopyright("Copyright © 2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("b65b778b-6062-432c-b8a7-4c78999e0c11")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.3002")]
+[assembly: AssemblyFileVersion("1.0.3002")]
diff --git a/AWS_Cloudberry_setup/Properties/Resources.Designer.cs b/AWS_Cloudberry_setup/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..8d6f355
--- /dev/null
+++ b/AWS_Cloudberry_setup/Properties/Resources.Designer.cs
@@ -0,0 +1,73 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace TekBackupSetup.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TekBackupSetup.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Logo {
+ get {
+ object obj = ResourceManager.GetObject("Logo", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/AWS_Cloudberry_setup/Properties/Resources.resx b/AWS_Cloudberry_setup/Properties/Resources.resx
new file mode 100644
index 0000000..b8be15c
--- /dev/null
+++ b/AWS_Cloudberry_setup/Properties/Resources.resx
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\Logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/AWS_Cloudberry_setup/Properties/Settings.Designer.cs b/AWS_Cloudberry_setup/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..14ed82c
--- /dev/null
+++ b/AWS_Cloudberry_setup/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace TekBackupSetup.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.0.1.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/AWS_Cloudberry_setup/Properties/Settings.settings b/AWS_Cloudberry_setup/Properties/Settings.settings
new file mode 100644
index 0000000..abf36c5
--- /dev/null
+++ b/AWS_Cloudberry_setup/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/AWS_Cloudberry_setup/README.md b/AWS_Cloudberry_setup/README.md
new file mode 100644
index 0000000..8f30a28
--- /dev/null
+++ b/AWS_Cloudberry_setup/README.md
@@ -0,0 +1,4 @@
+# AWS_Cloudberry_setup
+Provisioning AWS Cloudberry backup. Keys are injected into ITGlue
+
+AWS visual studio extention and credentials configured in it are required for compiling
diff --git a/AWS_Cloudberry_setup/TekBackup.Designer.cs b/AWS_Cloudberry_setup/TekBackup.Designer.cs
new file mode 100644
index 0000000..2cb6b7e
--- /dev/null
+++ b/AWS_Cloudberry_setup/TekBackup.Designer.cs
@@ -0,0 +1,202 @@
+namespace TekBackupSetup
+{
+ partial class frmTekbackup
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmTekbackup));
+ this.button1 = new System.Windows.Forms.Button();
+ this.button2 = new System.Windows.Forms.Button();
+ this.button3 = new System.Windows.Forms.Button();
+ this.button4 = new System.Windows.Forms.Button();
+ this.button5 = new System.Windows.Forms.Button();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.txtID = new System.Windows.Forms.TextBox();
+ this.txtCompany = new System.Windows.Forms.TextBox();
+ this.txtOutput = new System.Windows.Forms.TextBox();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(35, 106);
+ this.button1.Margin = new System.Windows.Forms.Padding(2);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(120, 28);
+ this.button1.TabIndex = 0;
+ this.button1.Text = "1. Create Bucket";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // button2
+ //
+ this.button2.Location = new System.Drawing.Point(35, 158);
+ this.button2.Margin = new System.Windows.Forms.Padding(2);
+ this.button2.Name = "button2";
+ this.button2.Size = new System.Drawing.Size(120, 28);
+ this.button2.TabIndex = 1;
+ this.button2.Text = "2. Create IAM User";
+ this.button2.UseVisualStyleBackColor = true;
+ this.button2.Click += new System.EventHandler(this.button2_Click);
+ //
+ // button3
+ //
+ this.button3.Location = new System.Drawing.Point(35, 205);
+ this.button3.Margin = new System.Windows.Forms.Padding(2);
+ this.button3.Name = "button3";
+ this.button3.Size = new System.Drawing.Size(120, 28);
+ this.button3.TabIndex = 2;
+ this.button3.Text = "3. Policy";
+ this.button3.UseVisualStyleBackColor = true;
+ this.button3.Click += new System.EventHandler(this.button3_Click);
+ //
+ // button4
+ //
+ this.button4.Location = new System.Drawing.Point(35, 250);
+ this.button4.Margin = new System.Windows.Forms.Padding(2);
+ this.button4.Name = "button4";
+ this.button4.Size = new System.Drawing.Size(120, 28);
+ this.button4.TabIndex = 3;
+ this.button4.Text = "4. Cloudberry Policy";
+ this.button4.UseVisualStyleBackColor = true;
+ this.button4.Click += new System.EventHandler(this.button4_Click);
+ //
+ // button5
+ //
+ this.button5.Location = new System.Drawing.Point(35, 297);
+ this.button5.Margin = new System.Windows.Forms.Padding(2);
+ this.button5.Name = "button5";
+ this.button5.Size = new System.Drawing.Size(120, 28);
+ this.button5.TabIndex = 4;
+ this.button5.Text = "5. ITGlue";
+ this.button5.UseVisualStyleBackColor = true;
+ this.button5.Click += new System.EventHandler(this.button5_Click);
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(9, 34);
+ this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(47, 13);
+ this.label1.TabIndex = 5;
+ this.label1.Text = "Client ID";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(18, 64);
+ this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(39, 13);
+ this.label2.TabIndex = 6;
+ this.label2.Text = "ITG ID";
+ this.label2.Click += new System.EventHandler(this.label2_Click);
+ //
+ // txtID
+ //
+ this.txtID.Location = new System.Drawing.Point(68, 34);
+ this.txtID.Margin = new System.Windows.Forms.Padding(2);
+ this.txtID.Name = "txtID";
+ this.txtID.Size = new System.Drawing.Size(100, 20);
+ this.txtID.TabIndex = 7;
+ //
+ // txtCompany
+ //
+ this.txtCompany.Location = new System.Drawing.Point(68, 62);
+ this.txtCompany.Margin = new System.Windows.Forms.Padding(2);
+ this.txtCompany.Name = "txtCompany";
+ this.txtCompany.Size = new System.Drawing.Size(100, 20);
+ this.txtCompany.TabIndex = 8;
+ //
+ // txtOutput
+ //
+ this.txtOutput.BackColor = System.Drawing.SystemColors.MenuText;
+ this.txtOutput.ForeColor = System.Drawing.Color.Lime;
+ this.txtOutput.Location = new System.Drawing.Point(211, 106);
+ this.txtOutput.Margin = new System.Windows.Forms.Padding(2);
+ this.txtOutput.Multiline = true;
+ this.txtOutput.Name = "txtOutput";
+ this.txtOutput.Size = new System.Drawing.Size(385, 221);
+ this.txtOutput.TabIndex = 9;
+ this.txtOutput.Text = "Configure a new client for Tekbackup Services. Please Complete steps in order.";
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Image = global::TekBackupSetup.Properties.Resources.Logo;
+ this.pictureBox1.InitialImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.InitialImage")));
+ this.pictureBox1.Location = new System.Drawing.Point(211, 11);
+ this.pictureBox1.Margin = new System.Windows.Forms.Padding(2);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(212, 80);
+ this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.pictureBox1.TabIndex = 10;
+ this.pictureBox1.TabStop = false;
+ //
+ // frmTekbackup
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(608, 347);
+ this.Controls.Add(this.pictureBox1);
+ this.Controls.Add(this.txtOutput);
+ this.Controls.Add(this.txtCompany);
+ this.Controls.Add(this.txtID);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.button5);
+ this.Controls.Add(this.button4);
+ this.Controls.Add(this.button3);
+ this.Controls.Add(this.button2);
+ this.Controls.Add(this.button1);
+ this.Margin = new System.Windows.Forms.Padding(2);
+ this.Name = "frmTekbackup";
+ this.Text = "TekBackup Setup";
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.Button button2;
+ private System.Windows.Forms.Button button3;
+ private System.Windows.Forms.Button button4;
+ private System.Windows.Forms.Button button5;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.TextBox txtID;
+ private System.Windows.Forms.TextBox txtCompany;
+ private System.Windows.Forms.TextBox txtOutput;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ }
+}
+
diff --git a/AWS_Cloudberry_setup/TekBackup.cs b/AWS_Cloudberry_setup/TekBackup.cs
new file mode 100644
index 0000000..717fb71
--- /dev/null
+++ b/AWS_Cloudberry_setup/TekBackup.cs
@@ -0,0 +1,263 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows.Forms;
+using Amazon.S3;
+using Amazon.S3.Model;
+using Amazon.IdentityManagement;
+using Amazon.IdentityManagement.Model;
+using Amazon.Auth.AccessControlPolicy;
+using System.Net;
+
+namespace TekBackupSetup
+{
+ partial class frmTekbackup : Form
+ {
+ public string bucketName = "";
+ public string ITGName = "";
+ public string key1 = "";
+ public string key2 = "";
+ public string arn = "";
+ public string policyarn = "";
+
+ public frmTekbackup()
+ {
+ InitializeComponent();
+
+ }
+
+//Button1 - Create Bucket
+ private void button1_Click(object sender, EventArgs e)
+ {
+ bucketName = txtID.Text;
+ var client = new AmazonS3Client(Amazon.RegionEndpoint.USEast2);
+
+ txtOutput.Text += "\r\n";
+ txtOutput.Text += "Creating Bucket: " + bucketName + "\r\n";
+ try
+ {
+ PutBucketRequest putRequest1 = new PutBucketRequest
+ {
+ BucketName = bucketName
+ };
+ PutBucketResponse response1 = client.PutBucket(putRequest1);
+ txtOutput.Text += response1.ToString() + "\r\n";
+ txtOutput.Text += "Bucket Created: arn:aws:s3:::" + bucketName + "\r\n";
+ arn = "arn:aws: s3:::" + bucketName;
+
+ }
+ catch (AmazonS3Exception amazonS3Exception)
+ {
+ if (amazonS3Exception.ErrorCode != null &&
+ (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId")
+ ||
+ amazonS3Exception.ErrorCode.Equals("InvalidSecurity")))
+ {
+ txtOutput.Text += "Check the provided AWS Credentials." + "\r\n";
+ txtOutput.Text += "For service sign up go to http://aws.amazon.com/s3" + "\r\n";
+ }
+ else
+ {
+ txtOutput.Text += "Error Creating Bucket!!!!" + amazonS3Exception.Message + "\r\n";
+ txtOutput.Text += amazonS3Exception.ErrorCode + "\r\n";
+ }
+ }
+ txtOutput.ScrollToCaret();
+ }
+
+// Button 2 - Create IAM User
+ private void button2_Click(object sender, EventArgs e)
+ {
+ txtOutput.Text += "Creating IAM User: " + bucketName + "\r\n";
+ var iamClient2 = new AmazonIdentityManagementServiceClient();
+ try
+ {
+ var readOnlyUser = iamClient2.CreateUser(new CreateUserRequest
+ {
+ UserName = bucketName,
+ }).User;
+ txtOutput.Text += "IAM USER Created: " + bucketName + "\r\n";
+ }
+ catch (EntityAlreadyExistsException ex)
+ {
+ txtOutput.Text += ex.Message + "\r\n";
+ var request = new GetUserRequest()
+ {
+ UserName = bucketName
+ };
+ }
+ try
+ {
+
+ txtOutput.Text += "Creating Access Key" + "\r\n";
+ var iamClient1 = new AmazonIdentityManagementServiceClient();
+ var accessKey = iamClient1.CreateAccessKey(new CreateAccessKeyRequest
+ {
+
+ UserName = bucketName
+ }).AccessKey;
+ txtOutput.Text += "Access Keys Generated:" + "\r\n";
+ txtOutput.Text += accessKey.AccessKeyId + "\r\n";
+ key1 = accessKey.AccessKeyId;
+ txtOutput.Text += accessKey.SecretAccessKey + "\r\n";
+ key2 = accessKey.SecretAccessKey;
+ }
+ catch (LimitExceededException ex)
+ {
+ txtOutput.Text += ex.Message;
+ }
+ txtOutput.ScrollToCaret();
+ }
+
+//Button3 - Policy
+ private void button3_Click(object sender, EventArgs e)
+ {
+ txtOutput.Text += "Creating Policy" + "\r\n";
+ var client = new AmazonIdentityManagementServiceClient();
+ string policyDoc = GenerateUserPolicyDocument(bucketName);
+ var request = new CreatePolicyRequest
+ {
+ PolicyName = bucketName + "Policy",
+ PolicyDocument = policyDoc
+ };
+ try
+ {
+ var createPolicyResponse = client.CreatePolicy(request);
+ txtOutput.Text += "Policy named " + createPolicyResponse.Policy.PolicyName + " Created." + "\r\n";
+ policyarn = createPolicyResponse.Policy.Arn;
+ }
+ catch (EntityAlreadyExistsException)
+ {
+ txtOutput.Text += "Policy " + bucketName + " already exits." + "\r\n";
+ }
+
+ txtOutput.Text += "Attaching policy to User" + "\r\n";
+ var attachrequest = new AttachUserPolicyRequest
+ {
+ UserName = bucketName,
+ PolicyArn = policyarn
+ };
+ try
+ {
+ var createPolicyResponse = client.AttachUserPolicy(attachrequest);
+ txtOutput.Text += "Policy applied" + "\r\n";
+ }
+ catch (Exception)
+ {
+ txtOutput.Text += "Attach Failed" + "\r\n";
+ }
+ txtOutput.ScrollToCaret();
+ }
+ public static string GenerateUserPolicyDocument(string bucketName)
+ {
+
+ string resourcearn = "arn:aws:s3:::" + bucketName + "/*";
+ string resourcearn2 = "arn:aws:s3:::" + bucketName;
+ var actionGet = new ActionIdentifier("s3:*");
+ var actions = new List();
+ actions.Add(actionGet);
+ var resource = new Resource(resourcearn);
+ var resource2 = new Resource(resourcearn2);
+ var resources = new List();
+ resources.Add(resource);
+ resources.Add(resource2);
+ var statement = new Amazon.Auth.AccessControlPolicy.Statement(Amazon.Auth.AccessControlPolicy.Statement.StatementEffect.Allow)
+ {
+ Actions = actions,
+ Id = bucketName + "Statmentid",
+ Resources = resources
+
+ };
+ var statements = new List();
+ statements.Add(statement);
+ var policy = new Policy
+ {
+ Id = bucketName + "Policy",
+ Version = "2012-10-17",
+ Statements = statements
+ };
+ return policy.ToJson();
+ }
+
+//Button 5- ITG
+ private void button5_Click(object sender, EventArgs e)
+ {
+ bucketName = txtID.Text;
+ ITGName = txtCompany.Text;
+ string json = "{ \"data\":{\"type\":\"passwords\",\"attributes\":{\"name\":\"TekBackup_Access_Keys\",\"password\":\""+key2+ "\",\"password-category-id\":32755,\"notes\":\"Password is Secret Key.\r\nAccess Key: " + key1+"\r\nARN: "+arn+ "\r\nPolicy ARN: " + policyarn+" \"}}}";
+ txtOutput.Text += json;
+ string url = "/organizations/"+ITGName+"/relationships/passwords";
+ string results = "";
+ using (var client = new WebClient())
+ {
+ client.Proxy = null;
+ client.Headers[HttpRequestHeader.Host] = "api.itglue.com";
+ client.Encoding = Encoding.UTF8;
+ client.Headers[HttpRequestHeader.ContentType] = "application/vnd.api+json";
+ client.Credentials = null;
+ client.Headers.Add("x-api-key","ITG.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
+ client.BaseAddress = "https://api.itglue.com";
+ results = client.UploadString(url, "POST", json);
+ }
+ txtOutput.Text += results;
+ }
+
+//Button 4 - CloudBerry
+ private void button4_Click(object sender, EventArgs e)
+ {
+ var oldpolicy = "";
+ txtOutput.Text += "Editing CB Role Policy" + "\r\n";
+
+ var client = new AmazonIdentityManagementServiceClient();
+
+ var getcurrentrequest = new GetRolePolicyRequest
+ {
+ PolicyName = "CloudBerryMBSPolicy",
+ RoleName = "CloudBerryMBSRole-6bba62a8-a0da-497c-b296-2fe588c64db4"
+
+ };
+ try
+ {
+ var getPolicyResponse = client.GetRolePolicy(getcurrentrequest);
+ oldpolicy = System.Net.WebUtility.UrlDecode(getPolicyResponse.PolicyDocument);
+
+
+
+
+ }
+ catch (NoSuchEntityException)
+ {
+ txtOutput.Text += "Policy does not exist." + "\r\n";
+ }
+ var newpolicy = oldpolicy.Remove(oldpolicy.Length - 3,3);
+
+ newpolicy += ",{\"Effect\": \"Allow\", \"Action\": \"s3:*\", \"Resource\": [ \"arn:aws:s3:::"+ txtID.Text + "\"], \"Condition\": {} }, {\"Effect\": \"Allow\", \"Action\": \"s3:*\", \"Resource\": [ \"arn:aws:s3:::" + txtID.Text + "/*\"], \"Condition\": {} } ] }";
+
+
+ var putrolepolicyrequest = new PutRolePolicyRequest
+ {
+ RoleName = "CloudBerryMBSRole-6bba62a8-a0da-497c-b296-2fe588c64db4",
+ PolicyName = "CloudBerryMBSPolicy",
+ PolicyDocument = newpolicy
+ };
+
+ try
+ {
+ var putPolicyResponse = client.PutRolePolicy(putrolepolicyrequest);
+ txtOutput.Text += "CloudBerry Role Policy Update - Success \r\n";
+
+ }
+ catch (NoSuchEntityException)
+ {
+ txtOutput.Text += "Policy does not exist." + "\r\n";
+ }
+ }
+
+
+
+ private void label2_Click(object sender, EventArgs e)
+ {
+
+ }
+ }
+}
diff --git a/AWS_Cloudberry_setup/TekBackup.resx b/AWS_Cloudberry_setup/TekBackup.resx
new file mode 100644
index 0000000..c7b7a3e
--- /dev/null
+++ b/AWS_Cloudberry_setup/TekBackup.resx
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAooAAAB2CAMAAAB4ZUL1AAAABGdBTUEAALGPC/xhBQAAAwBQTFRF0NHS
+ 4ODhtbW14uLj1NTWRERF3t7fkZGRuLi4WFhZbW1uhISF3Nzd5JVZzrqsiYmJzM3OyMnLcXFx1tfY2Nna
+ eXl51qyMzs/Q6YxE7YU2lpaWXV1eaWlpysvN0tLSgYGBysG6qqqqy8zOPT092NjYTU1NdXV207OaLCwt
+ 29vcZWVmwsPE355s26V8vLy8pKSlNTU1jY2OoqKiz9DS4Zpk1tbWfH1+09TVv7+/r6+vGhobUlJTm5ub
+ wMDAyMjI39/gzs7O0NDQ4eHijIyM3d3e2trbvr/AIiIjSUlKHBwdODg6zMzMJCQlERESxMTE8YAqnJyc
+ srKz1a+S3aBxQUFCn5+grKysFRUWMDAxxMXGKSkqmZmZYmJjysrK4eLjpqam4+PkwsLCwMHC0Laif3+A
+ yMTBYGBg2KmFj4+QcnJyvb2+urq7sbGysLCxubm5enp7sbK0lpaXhoeHp6eotra38n4l8n0iRkZGVlZW
+ Y2Nku7u7ampsra2tqKiqcHBy5pFQnp6eeHh4i4uMVVVWq6usnZ6fKyssxsfJOzs8IyMjX19g83wgx8fH
+ VFRV5OTkx8jK8fHxNzc48PDw7+/v7u7u7e3tycrM6urqDg4P6enp5eXl1dXV6+vr8fHy7Ozs5+foDw8Q
+ 2drb3d7f0dLTx8jJ6Ojozc7Q1dbX5ubm6+vs7O3t19jZ5+fn5OXl29zd7+/wxcbI5ufn7u7vzc7P1NTU
+ 5eXm6Ojp5OTlEhITycrL5ubnJico0tLUFxcY6urr0tPU6enq5+joW1tb5ebm7Ozt8PDx0tPVHx8g3+Dh
+ T09P6OnpS0tM09PVc3N0Li4vPj4/7e3ujo6P4+Tk6uvrGxsc09PTxsbGxcbHx8XEx8bGU1NU6erqvb6/
+ YWFiMzM0oKChoaGimpqcw8TGV1dYxsbIxsfIQ0NEe3t8jY6P6+zsqKipt7e383whmZqbs7S2r7Cyo6Oj
+ UFBRoqOll5iYk5OUb29vx8fJu7y+Z2dnzb2xv7/BnJ2eq6yusbKzDQ0O8vLyAutM3AAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAB7sSURBVHhe7Z17YBTVucA3EHlGSUhsLCRqAygBFZAK
+ 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
+
+
+
\ No newline at end of file
diff --git a/AWS_Cloudberry_setup/TekBackupSetup.csproj b/AWS_Cloudberry_setup/TekBackupSetup.csproj
new file mode 100644
index 0000000..ec5bff2
--- /dev/null
+++ b/AWS_Cloudberry_setup/TekBackupSetup.csproj
@@ -0,0 +1,138 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {B65B778B-6062-432C-B8A7-4C78999E0C11}
+ WinExe
+ TekBackupSetup
+ TekBackupSetup
+ v4.5.2
+ 512
+ true
+ false
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ true
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ false
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ false
+
+
+
+
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\AWS SDK for .NET\bin\Net45\AWSSDK.Core.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\AWS SDK for .NET\bin\Net45\AWSSDK.IdentityManagement.dll
+
+
+ ..\..\..\..\..\..\..\Program Files (x86)\AWS SDK for .NET\bin\Net45\AWSSDK.S3.dll
+
+
+ ..\..\..\..\..\..\..\Cloud.Backup.API.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ TekBackup.cs
+
+
+
+
+ TekBackup.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ Designer
+
+
+
+
+
+
+
+
+
+
+ False
+ Microsoft .NET Framework 4.5.2 %28x86 and x64%29
+ true
+
+
+ False
+ .NET Framework 3.5 SP1
+ false
+
+
+
+
\ No newline at end of file