+
+{% content-ref url="guides/tagging-cloud-resources/setting-up-tag-catalog.md" %}
+[setting-up-tag-catalog.md](guides/tagging-cloud-resources/setting-up-tag-catalog.md)
+{% endcontent-ref %}
+{% endtab %}
+{% endtabs %}
{% content-ref url="quick-start.md" %}
[quick-start.md](quick-start.md)
@@ -27,22 +67,30 @@ If you are just starting with cloud cost management (a.k.a. FinOps, Cloud Financ
## With Cloudthread you can...
-**Analyze your cloud spend** in a minimalistic, easy-to-use interface. No more frustrating over-complicated tools.
+**Have a clear action plan.** Cloudthread platform provides a powerful **cost savings recommendation engine** that helps to guide optimization agenda.
+
+**Analyze your cloud spend** in a minimalistic, easy-to-use interface. No more frustrating over-complicated tools.
**Track your cloud cost efficiency** with custom-defined **unit metrics**. We support various data sourced and let you create cloud cost unit metrics that are meaningful for your team.
**Understand what is important to track.** Based on your environment our system recommends unit metrics that make sense for you. So, if you not sure how to start with cloud cost efficiency and unit economics, we get you going.
-**Be notified and always on top of your cloud spend.** Our reporting and alerting capabilities will deliver the most important information at the right time to the channels that matter.
+**Be notified and always on top of your cloud spend.** Our reporting and alerting capabilities will deliver the most important information to the right people at the right time through the channels that matter.
## Starting takes just 10 min
-You can get started with **advanced cloud cost management** within just **10 minutes**! [Create an account](https://app.core.cloudthread.io/sign-up) and refer to [Broken link](broken-reference "mention") section for a fast onboarding experience.
+You can get started with **advanced cloud cost management** within just **10 minutes**! [Create an account](https://app.core.cloudthread.io/sign-up) and refer to [onboarding](guides/onboarding/ "mention") section for a fast onboarding experience.
-{% hint style="warning" %}
-Cloudthread is supporting only **AWS** at the moment. If you are using other cloud providers, please let us know [here](https://www.cloudthread.io/contact-us).
+{% hint style="success" %}
+Cloudthread supports **AWS** and **GCP** – you can find the set up steps for both provides in the sections below.
{% endhint %}
-## Support
+{% content-ref url="guides/onboarding/connecting-aws-account.md" %}
+[connecting-aws-account.md](guides/onboarding/connecting-aws-account.md)
+{% endcontent-ref %}
+
+{% content-ref url="guides/onboarding/connecting-gcp-billing-account.md" %}
+[connecting-gcp-billing-account.md](guides/onboarding/connecting-gcp-billing-account.md)
+{% endcontent-ref %}
If you ever need help setting things up or have feature requests, don't hesitate to reach out to us at [hey@cloudthread.io](mailto:hey@cloudthread.io)
diff --git a/SUMMARY.md b/SUMMARY.md
index 55abd08..df92828 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -5,26 +5,80 @@
## 🗺 Guides
-* [Connecting AWS Account](guides/connecting-aws-account.md)
-* [Creating custom Cost Views](guides/creating-custom-cost-views.md)
-* [Creating custom Unit Metrics](guides/creating-custom-unit-metrics.md)
-* [Performing Root Cause Analysis](guides/performing-root-cause-analysis.md)
-* [Setting up Alerts and Reports](guides/setting-up-alerts-and-reports.md)
-* [Adding new Users](guides/managing-account-and-team.md)
+* [Onboarding](guides/onboarding/README.md)
+ * [Connecting AWS Management Account](guides/onboarding/connecting-aws-account.md)
+ * [Connecting GCP Billing Account](guides/onboarding/connecting-gcp-billing-account.md)
+ * [Adding new Users](guides/onboarding/managing-account-and-team-1.md)
+ * [Setting up Teams](guides/onboarding/setting-up-teams.md)
+* [Optimizing Cloud Costs](guides/optimizing-cloud-costs/README.md)
+ * [Analyzing Savings Opportunities](guides/optimizing-cloud-costs/analyzing-optimization-opportunities.md)
+ * [Creating Saving Threads](guides/optimizing-cloud-costs/creating-saving-threads.md)
+ * [Creating Manual Savings Opportunities](guides/optimizing-cloud-costs/creating-custom-optimization-opportunities.md)
+ * [Supported Savings Opportunities](guides/optimizing-cloud-costs/supported-savings-opportunities.md)
+* [Monitoring Cloud Costs](guides/monitoring-cloud-costs/README.md)
+ * [Creating Cost Views](guides/monitoring-cloud-costs/creating-custom-cost-views.md)
+ * [Creating Unit Metrics](guides/monitoring-cloud-costs/creating-custom-unit-metrics.md)
+ * [Performing Root Cause Analysis](guides/monitoring-cloud-costs/performing-root-cause-analysis.md)
+ * [Performing K8s Cost Analysis](guides/monitoring-cloud-costs/performing-k8s-cost-analysis.md)
+ * [Setting Budgets](guides/monitoring-cloud-costs/managing-account-and-team.md)
+ * [Creating Custom Dashboards](guides/monitoring-cloud-costs/creating-custom-dashboards.md)
+ * [Setting Up Alerts and Reports](guides/monitoring-cloud-costs/setting-up-alerts-and-reports.md)
+ * [Setting Up Events Overlay](guides/monitoring-cloud-costs/ingesting-custom-data-1.md)
+ * [Setting Up Cost Allocation Rules](guides/monitoring-cloud-costs/setting-up-cost-allocation-rules.md)
+ * [Ingesting Custom Data](guides/monitoring-cloud-costs/ingesting-custom-data.md)
+* [Tagging Cloud Resources](guides/tagging-cloud-resources/README.md)
+ * [Setting up Tag Catalog](guides/tagging-cloud-resources/setting-up-tag-catalog.md)
## 📘 Fundamentals
+* [Cost Savings](fundamentals/cost-savings/README.md)
+ * [Key Concepts](fundamentals/cost-savings/key-concepts/README.md)
+ * [Savings Opportunities](fundamentals/cost-savings/key-concepts/optimization-opportunities.md)
+ * [Savings Threads](fundamentals/cost-savings/key-concepts/savings-threads.md)
+ * [Savings Dashboard](fundamentals/cost-savings/savings-dashboard.md)
+ * [Savings Threads Section](fundamentals/cost-savings/savings-threads-app-section.md)
+ * [Opportunities Explorer](fundamentals/cost-savings/opportunities-explorer.md)
+* [Custom Dashboards](fundamentals/dashboards/README.md)
+ * [Summary Dashboard](fundamentals/dashboards/summary-dashboard.md)
+ * [Dashboards Lab](fundamentals/dashboards/dashboards-lab.md)
+ * [Dashboards Library](fundamentals/dashboards/dashboards-library.md)
* [Cost Transparency](fundamentals/cost-transparency/README.md)
- * [Cost Views](fundamentals/cost-transparency/cost-view.md)
- * [Cost View Library](fundamentals/cost-transparency/cost-view-library.md)
+ * [Key Concepts](fundamentals/cost-transparency/key-concepts/README.md)
+ * [Cost Views](fundamentals/cost-transparency/key-concepts/cost-view.md)
+ * [Budgets](fundamentals/cost-transparency/key-concepts/budgets.md)
+ * [Kubernetes Dimensions](fundamentals/cost-transparency/key-concepts/kubernetes-dimensions.md)
+ * [Drill-Down](fundamentals/cost-transparency/key-concepts/drill-down.md)
+ * [Movers and Shakers Snapshot](fundamentals/cost-transparency/key-concepts/movers-and-shakers-snapshot.md)
+ * [Low Utilization Detection](fundamentals/cost-transparency/key-concepts/low-utilization-detection.md)
+ * [Regular Expressions](fundamentals/cost-transparency/key-concepts/regular-expressions.md)
+ * [Tag Analyzer](fundamentals/cost-transparency/key-concepts/tag-analyzer.md)
+ * [Events Overlay](fundamentals/cost-transparency/key-concepts/events-overlay.md)
+ * [Cost Allocation Rules](fundamentals/cost-transparency/key-concepts/cost-allocation-rules.md)
* [Costs Overview](fundamentals/cost-transparency/costs-overview.md)
- * [Drill-Down](fundamentals/drill-down.md)
+ * [Cost View Library](fundamentals/cost-transparency/cost-view-library.md)
+ * [Rule Lab](fundamentals/cost-transparency/rule-editor.md)
+ * [Rule Library](fundamentals/cost-transparency/rules-library.md)
* [Unit Economics](fundamentals/unit-metrics/README.md)
- * [Unit Metrics](fundamentals/unit-metrics/unit-metric.md)
+ * [Key Concepts](fundamentals/unit-metrics/key-concepts/README.md)
+ * [Unit Metrics](fundamentals/unit-metrics/key-concepts/unit-metric.md)
+ * [Unit Metrics Lab](fundamentals/unit-metrics/unit-metrics-lab.md)
* [Unit Metrics Library](fundamentals/unit-metrics/unit-metrics-library.md)
- * [Unit Metrics Overview](fundamentals/unit-metrics/unit-metrics-lab.md)
+* [Tag Assistant](fundamentals/tag-assistant/README.md)
+ * [Tags Overview](fundamentals/tag-assistant/tag-overview.md)
+ * [Tags Catalog](fundamentals/tag-assistant/tag-catalogs.md)
* [Notifications](fundamentals/notifications/README.md)
* [Alerts](fundamentals/notifications/alerts.md)
* [Reports](fundamentals/notifications/reports.md)
- * [Slack Integration](fundamentals/notifications/slack-integration.md)
-* [Account & Team Management](fundamentals/account-and-team-management.md)
+* [Settings](fundamentals/settings/README.md)
+ * [Profile](fundamentals/settings/user-profile.md)
+ * [Savings Opportunities Settings](fundamentals/settings/savings-opportunities-settings.md)
+ * [User Management](fundamentals/settings/account-and-team-management.md)
+ * [Integrations](fundamentals/settings/integrations.md)
+ * [SSO](fundamentals/settings/sso.md)
+ * [Payment](fundamentals/settings/payment.md)
+ * [Pull Data Collection](fundamentals/settings/data-collection.md)
+ * [Push Data Collection](fundamentals/settings/push-data-collection.md)
+ * [API Keys](fundamentals/settings/api-keys.md)
+ * [Teams](fundamentals/settings/teams.md)
+ * [Cost Columns](fundamentals/settings/cost-columns.md)
+* [Custom Data API](fundamentals/custom-data-api.md)
diff --git a/Screen Cast 2022-05-03 at 8.13.50 PM.gif b/Screen Cast 2022-05-03 at 8.13.50 PM.gif
deleted file mode 100644
index 9585629..0000000
Binary files a/Screen Cast 2022-05-03 at 8.13.50 PM.gif and /dev/null differ
diff --git a/fundamentals/account-and-team-management.md b/fundamentals/account-and-team-management.md
deleted file mode 100644
index d5f1740..0000000
--- a/fundamentals/account-and-team-management.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Account & Team Management
-
-Within your account there can be **Admins** and **Users**.
-
-{% hint style="info" %}
-The user that creates your account will automatically be an **Admin**.
-{% endhint %}
-
-### **User**
-
-**Users** have the ability to:
-
-* Use [cost-transparency](cost-transparency/ "mention") and [unit-metrics](unit-metrics/ "mention") features in full
-* Create [cost-view.md](cost-transparency/cost-view.md "mention") and [unit-metric.md](unit-metrics/unit-metric.md "mention") that are available to **all** other users
-* Create [alerts.md](notifications/alerts.md "mention") and [reports.md](notifications/reports.md "mention") that will be delivered **only to them** via email and/or Slack
-
-### **Admin**
-
-**Admins** have the ability to do everything **Users** can do, plus:
-
-* Create new **Users** or **Admins** (Account -> Team Management)
-* Create [alerts.md](notifications/alerts.md "mention") and [reports.md](notifications/reports.md "mention") that can be delivered to **any** email, **any** Slack user, and **any** Slack channel
diff --git a/fundamentals/cost-savings/README.md b/fundamentals/cost-savings/README.md
new file mode 100644
index 0000000..4474161
--- /dev/null
+++ b/fundamentals/cost-savings/README.md
@@ -0,0 +1,6 @@
+---
+description: Features focused on cloud cost optimization
+---
+
+# Cost Savings
+
diff --git a/fundamentals/cost-savings/key-concepts/README.md b/fundamentals/cost-savings/key-concepts/README.md
new file mode 100644
index 0000000..cca5b04
--- /dev/null
+++ b/fundamentals/cost-savings/key-concepts/README.md
@@ -0,0 +1,2 @@
+# Key Concepts
+
diff --git a/fundamentals/cost-savings/key-concepts/optimization-opportunities.md b/fundamentals/cost-savings/key-concepts/optimization-opportunities.md
new file mode 100644
index 0000000..a57eb63
--- /dev/null
+++ b/fundamentals/cost-savings/key-concepts/optimization-opportunities.md
@@ -0,0 +1,179 @@
+# Savings Opportunities
+
+**Optimization Opportunity** is a concrete **recommendation** on the **cost optimization action** for a **specific** cloud **resource** (or group of resources for Rate Optimization).
+
+It is a key concept of [..](../ "mention") functionality Cloudthread platform provides, and is a building block for [savings-threads.md](savings-threads.md "mention").
+
+Cloudthread **automatically** discovers and surfaces Optimization Opportunities in [opportunities-explorer.md](../opportunities-explorer.md "mention") app section by scanning your cloud environments. In order to setup the discovery engine, you need to go through [onboarding](../../../guides/onboarding/ "mention") stage.
+
+Cloudthread also support creation of **custom** opportunities for ad-hoc optimization needs. Refer to [creating-custom-optimization-opportunities.md](../../../guides/optimizing-cloud-costs/creating-custom-optimization-opportunities.md "mention") for more details.
+
+{% hint style="success" %}
+See [#supported-opportunities](optimization-opportunities.md#supported-opportunities "mention") for the list of recommendations Cloudthread currently supports.
+{% endhint %}
+
+## Key Features
+
+Optimization Opportunity represents a **collection of datapoints** aimed at **analysis** and **implementation** support of **cost optimization action** targeted at **specific** cloud **resource** or **group or resources**.
+
+Below are the major types of insights Optimization Opportunity contains.
+
+### **Optimization context**
+
+Baseline features of optimization.
+
+#### Optimization type
+
+Optimization **type** defines the nature of the cost savings recommendation. Different recommendation types have different representation on Cloudthread platform and are targeted at different use cases and stakeholders.
+
+{% hint style="info" %}
+Cloudthread currently supports **3 major types** of Optimization Opportunities:
+
+**Usage Optimization** Opportunities
+
+* Actions altering actual cloud resources (e.g. changing VM specs, storage retention policies, removing unused resources)
+
+**Rate Optimization** Opportunities
+
+* Actions targeting financial concepts, mainly commitment-based discounts (e.g. [Reserved Instances](https://aws.amazon.com/ec2/pricing/reserved-instances/) and [Savings Plans](https://aws.amazon.com/savingsplans/) for AWS, [Committed Use Discounts](https://cloud.google.com/compute/docs/instances/signing-up-committed-use-discounts) for GCP)
+
+**Custom** Opportunities
+
+* Ad-hoc opportunities for custom tracking needs. See [creating-custom-optimization-opportunities.md](../../../guides/optimizing-cloud-costs/creating-custom-optimization-opportunities.md "mention") for more details.
+{% endhint %}
+
+#### Rate Optimization settings
+
+Rate optimization opportunities can be set up for a desired configuration of cloud commitments.
+
+
+
+
+
+
+
+The settings window can be opened by clicking `Rate Optimization Settings` button at the top right corner of [opportunities-explorer.md](../opportunities-explorer.md "mention") section.
+
+{% hint style="info" %}
+Currently the settings of AWS [Reserved Instances](https://aws.amazon.com/ec2/pricing/reserved-instances/) and [Savings Plans](https://aws.amazon.com/savingsplans/) can be adjusted.
+{% endhint %}
+
+These are the attributes of AWS [Reserved Instances](https://aws.amazon.com/ec2/pricing/reserved-instances/) and [Savings Plans](https://aws.amazon.com/savingsplans/) hat can be changed:
+
+* Reserved Instances
+ * Term: 1 year or 3 years
+ * Payment: No Upfront, Partial Upfront, All Upfront
+ * EC2 Offering Class
+* Savings Plans
+ * Term: 1 year or 3 years
+ * Payment: No Upfront, Partial Upfront, All Upfront
+ * Lookback
+
+#### Usage Optimization settings
+
+See [savings-opportunities-settings.md](../../settings/savings-opportunities-settings.md "mention") for more details.
+
+{% content-ref url="../../settings/savings-opportunities-settings.md" %}
+[savings-opportunities-settings.md](../../settings/savings-opportunities-settings.md)
+{% endcontent-ref %}
+
+#### Estimated savings
+
+An estimated financial impact of acting on opportunity recommendation. Can be Daily, Monthly, Quarterly and Yearly.
+
+#### Difficulty
+
+Estimated difficulty of opportunity recommendation implementation. Considers potential **downtime** and **performance** risks.
+
+{% hint style="info" %}
+Cloudthread Optimization Opportunities have **3 levels** of difficulty:
+
+* **Easy**
+ * Zero downtime, zero performance risks
+* **Medium**
+ * Zero downtime, potential performance trade-offs
+* **Hard**
+ * Potential downtime, potential performance trade-offs
+{% endhint %}
+
+### **Resource context**
+
+Key dimensions if the cloud resource covered by the recommendation.
+
+* ResourceID
+* Cloud provider
+* Account (Project)
+* Region
+* Service
+
+{% hint style="warning" %}
+For opportunities of **Rate** [#optimization-type](optimization-opportunities.md#optimization-type "mention") ResourceID is not available as the concept of usage-based discount is not tied to a specific VM, but rather to the type of resource.
+{% endhint %}
+
+### **Workflow context**
+
+Data on the state of opportunity in the implementation process.
+
+* **Opportunity status**
+ * Open
+ * Archived
+ * Done
+* Existing [savings-threads.md](savings-threads.md "mention") containing the opportunity
+* **Open JIRA tickets** addressing the opportunity
+
+### **Visual context**
+
+Charts with metrics for recommendation analysis.
+
+* **Resource utilization**
+ * Max CPU
+ * Memory
+ * Network
+ * Throughput
+ * DB connections
+ * Etc. – depends on the type of opportunity
+* **Resource cost**
+ * Cost of resource over time (incl. cumulative)
+
+### **Recommendation context**
+
+Detailed description of the recommended actions.
+
+* **Text description with concrete steps**
+* **Links to guides/materials**
+
+### **Risk context**
+
+Description of risks connected with oportunity implementation.
+
+* **Risk description**
+* **Mitigation recommendations**
+ * E.g. backup
+
+### **Implementation support context**
+
+Code snippets or automation setup.
+
+* **Code snippets for Terraform**
+* **Code snippets for CLI**
+* **Opt-in automation if applicable**
+
+## Savings Opportunities Settings
+
+Savings Opportunities detection criteria can be adjusted in [settings](../../settings/ "mention").
+
+## Supported Opportunities
+
+{% hint style="success" %}
+The list below is **live** and updates dynamically as we are implementing new opportunities.
+
+If you are not seeing something that is **important** for you, please let us know [here](https://www.cloudthread.io/contact-us).
+{% endhint %}
+
+{% embed url="https://docs.google.com/spreadsheets/d/1idSzjpVyMLdWQDtbhFkgkZyTdHvXyJ4m4dIPpRTSu6I/edit?usp=sharing" fullWidth="true" %}
+Cloudthread Optimization Opportunities
+{% endembed %}
+
+{% hint style="info" %}
+The spreadsheet above can be accessed [here](https://docs.google.com/spreadsheets/d/1idSzjpVyMLdWQDtbhFkgkZyTdHvXyJ4m4dIPpRTSu6I/edit?usp=sharing).
+{% endhint %}
diff --git a/fundamentals/cost-savings/key-concepts/savings-threads.md b/fundamentals/cost-savings/key-concepts/savings-threads.md
new file mode 100644
index 0000000..26748e0
--- /dev/null
+++ b/fundamentals/cost-savings/key-concepts/savings-threads.md
@@ -0,0 +1,72 @@
+# Savings Threads
+
+**Savings Thread** is a grouping of multiple [optimization-opportunities.md](optimization-opportunities.md "mention") aimed at the creation of **cloud cost optimization workflow**.
+
+It is a key concept of [..](../ "mention") functionality Cloudthread platform provides, and it allows for bundling various related resources and optimization actions into a single thread that can be shared with stakeholders and tracked.
+
+{% hint style="success" %}
+See [creating-saving-threads.md](../../../guides/optimizing-cloud-costs/creating-saving-threads.md "mention") guide for the instructions on how to create your first Thread.
+{% endhint %}
+
+{% hint style="info" %}
+You can find and manage Savings Threads in [savings-threads-app-section.md](../savings-threads-app-section.md "mention") app section.
+{% endhint %}
+
+## Key Features
+
+{% hint style="info" %}
+**Savings Thread** serves as a **mini-project for cloud cost optimization**.
+
+It is designed to be **shared** with the stakeholders and provides them with convenient context regarding the optimization, which is not just a summary of data points from [optimization-opportunities.md](optimization-opportunities.md "mention"), but additional insight based on opportunity inter-dependencies.
+
+Thread also allows to **track** optimization implementation progress and **report** on status and results.
+{% endhint %}
+
+### **Enriched context**
+
+Data based on summarized [#key-features](optimization-opportunities.md#key-features "mention") of Optimization Opportunities.
+
+#### **Optimization context**
+
+* Total estimated savings
+* Combined difficulty
+
+#### **Resource context**
+
+* Cloud providers
+* Accounts (Project)
+* Regions
+* Services
+
+#### **Workflow context**
+
+* Thread status
+ * Open
+ * Validation
+ * Implementation
+ * Done
+ * Rejected
+* List of Optimization Opportunities
+* Open JIRA tickets addressing the opportunity
+
+#### **Recommendation context**
+
+* Sequence for opportunities with concrete steps
+* Links to guides/materials
+
+#### **Risk context**
+
+* Risk summary
+* Mitigation recommendations (e.g. backup)
+
+### **Shareability**
+
+Ability to create a JIRA ticket based on the Thread.
+
+{% hint style="info" %}
+Cloudthread supports **two-way JIRA integration**. See [#jira-integration](../../settings/slack-integration.md#jira-integration "mention") guide for the directions on how to set one up.
+{% endhint %}
+
+### **Trackability**
+
+Ability to track the status of JIRA ticket attached to Thread as well as related conversations and savings realized.
diff --git a/fundamentals/cost-savings/opportunities-explorer.md b/fundamentals/cost-savings/opportunities-explorer.md
new file mode 100644
index 0000000..5d96137
--- /dev/null
+++ b/fundamentals/cost-savings/opportunities-explorer.md
@@ -0,0 +1,170 @@
+---
+description: App Section
+---
+
+# Opportunities Explorer
+
+**Opportunities Explorer** is the section of the app where you can manage [optimization-opportunities.md](key-concepts/optimization-opportunities.md "mention").
+
+
Cloudthread Opportunities Explorer
+
+## Key Features
+
+### New Manual Opportunity Button
+
+Cloudthread allows for creation of custom optimization opportunities. This button starts the creation flow. Refer to [creating-custom-optimization-opportunities.md](../../guides/optimizing-cloud-costs/creating-custom-optimization-opportunities.md "mention") for more details.
+
+### Teams Dropdown
+
+Allows to choose a [teams.md](../settings/teams.md "mention"). See [setting-up-teams.md](../../guides/onboarding/setting-up-teams.md "mention") for more information.
+
+### Platform Selector
+
+Filters [#opportunities-table](opportunities-explorer.md#opportunities-table "mention") for the cloud provider.
+
+{% hint style="info" %}
+Currently Cloudthread platform supports **AWS** and **GCP**.
+{% endhint %}
+
+### Rate Optimization Settings
+
+Rate optimization opportunities can be set up for a desired configuration of cloud commitments.
+
+
+
+
+
+
+
+The settings window can be opened by clicking `Rate Optimization Settings` button at the top right corner of [opportunities-explorer.md](opportunities-explorer.md "mention") section.
+
+{% hint style="info" %}
+Currently the settings of AWS [Reserved Instances](https://aws.amazon.com/ec2/pricing/reserved-instances/) and [Savings Plans](https://aws.amazon.com/savingsplans/) can be adjusted.
+{% endhint %}
+
+These are the attributes of AWS [Reserved Instances](https://aws.amazon.com/ec2/pricing/reserved-instances/) and [Savings Plans](https://aws.amazon.com/savingsplans/) hat can be changed:
+
+* Reserved Instances
+ * Term: 1 year or 3 years
+ * Payment: No Upfront, Partial Upfront, All Upfront
+ * EC2 Offering Class
+* Savings Plans
+ * Term: 1 year or 3 years
+ * Payment: No Upfront, Partial Upfront, All Upfront
+ * Lookback
+
+### Opportunities Table
+
+List of all discovered and custom opportunities.
+
+Table fields:
+
+* Opportunity ID
+* Record ID
+ * Resource ID or Discount code
+* [Estimated Monthly Savings](key-concepts/optimization-opportunities.md#estimated-savings)
+* [Difficulty](key-concepts/optimization-opportunities.md#difficulty)
+* [Type](key-concepts/optimization-opportunities.md#optimization-type)
+* [Category](key-concepts/optimization-opportunities.md#recommendation-context)
+* [Status](key-concepts/optimization-opportunities.md#workflow-context)
+* [Resource context](key-concepts/optimization-opportunities.md#resource-context)
+ * Account
+ * Region
+ * Service
+ * Tags
+* First Detected
+* Last Detected
+
+{% hint style="success" %}
+Each row in the table can be **extended** to see the raw JSON details on opportunity.
+{% endhint %}
+
+The rows of the table are **selectable.** For the selected rows 3 actions are available (buttons at the top of the table):
+
+* Create New Thread
+* Assign To Thread
+* Archive Selected
+
+#### Create New Thread Button
+
+Redirects to a form for creating a new Thread (see [savings-threads.md](key-concepts/savings-threads.md "mention")) with selected opportunities.
+
+#### Assign To Thread Button
+
+Redirects to a form for adding opportunities to an existing Thread (see [savings-threads.md](key-concepts/savings-threads.md "mention")).
+
+#### Archive Selected Button
+
+Archives selected opportunities. This functionality allows to **ignore** the opportunities that are **irrelevant** and will not be implemented.
+
+{% hint style="info" %}
+Opportunities can be **archived** by clicking trash bin button in Actions column at the end of the table.
+
+Archived opportunities can be **restored** by clicking restore button in Actions column at the end of the table.
+{% endhint %}
+
+### Opportunity Details Page
+
+
Cloudthread Optimization Opportunity Details
+
+By clicking on the **Opportunity ID** in the tables above, you will be redirected to **Opportunity Details Page** containing detailed context on the optimization opportunity. See [optimization-opportunities.md](key-concepts/optimization-opportunities.md "mention") for description of the context types.
+
+#### Assign To Thread Button
+
+Redirects to a form for adding current opportunity to an existing Thread (see [savings-threads.md](key-concepts/savings-threads.md "mention")).
+
+#### Create New Thread Button
+
+Redirects to a form for creating a new Thread (see [savings-threads.md](key-concepts/savings-threads.md "mention")) with current opportunity.
+
+#### Resolve Button
+
+Marks current opportunity as **Done** (see [status](key-concepts/optimization-opportunities.md#workflow-context)).
+
+#### Archive Button
+
+Marks current opportunity as **Archived** (see [status](key-concepts/optimization-opportunities.md#workflow-context)).
+
+#### Savings Potential Card
+
+[Estimated monthly savings](key-concepts/optimization-opportunities.md#estimated-savings) expected from opportunity implementation.
+
+#### Difficulty Card
+
+Opportunity [difficulty](key-concepts/optimization-opportunities.md#difficulty).
+
+#### Resource Details Cards
+
+Major [details](key-concepts/optimization-opportunities.md#resource-context) of cloud resource.
+
+#### Recommendation Details Card
+
+Recommendation [context](key-concepts/optimization-opportunities.md#recommendation-context).
+
+#### Resource Cost Chart
+
+The chart with the cost of resource over time.
+
+#### Resource Context Section
+
+Detailed context for the resource.
+
+#### Usage Context Section
+
+Enriched context for resource usage.
+
+#### Resource Details Section
+
+Raw JSON for resource details.
+
+{% hint style="success" %}
+JSON is great for copying over and extracting the relevant information by **engineers**.
+{% endhint %}
+
+#### Opportunity Full Metadata Section
+
+Raw JSON for recommendation details.
+
+{% hint style="success" %}
+JSON is great for copying over and extracting the relevant information by **engineers**.
+{% endhint %}
diff --git a/fundamentals/cost-savings/savings-dashboard.md b/fundamentals/cost-savings/savings-dashboard.md
new file mode 100644
index 0000000..340a832
--- /dev/null
+++ b/fundamentals/cost-savings/savings-dashboard.md
@@ -0,0 +1,41 @@
+---
+description: App Section
+---
+
+# Savings Dashboard
+
+**Savings Dashboard** is the section of the app where you can see the high-level overview of cost savings workflows represented by [savings-threads.md](key-concepts/savings-threads.md "mention").
+
+{% hint style="warning" %}
+Savings Dashboard is not connected to [dashboards](../dashboards/ "mention") functionality of [cost-transparency](../cost-transparency/ "mention") set of features. It is a separate entity covering [.](./ "mention") functionality.
+{% endhint %}
+
+
Cloudthread Savings Dashboard
+
+## Key Features
+
+### Cost Insights Cards
+
+* Total spend for current month
+* Total spend for previous month
+* Saving Potential card
+ * Estimated monthly savings from unaddressed [optimization-opportunities.md](key-concepts/optimization-opportunities.md "mention")
+
+### Workflow Summary Cards
+
+* Summary statistics on [savings-threads.md](key-concepts/savings-threads.md "mention")
+* Summary statistics on [optimization-opportunities.md](key-concepts/optimization-opportunities.md "mention")
+
+### Savings Chart
+
+* Total Spend + Waste/Savings Chart
+
+### Thread Tables
+
+* Active Threads table
+* Stale Threads table
+* Recently Rejected Threads table
+
+### Opportunity Tables
+
+* New Opportunities table
diff --git a/fundamentals/cost-savings/savings-threads-app-section.md b/fundamentals/cost-savings/savings-threads-app-section.md
new file mode 100644
index 0000000..0e1f506
--- /dev/null
+++ b/fundamentals/cost-savings/savings-threads-app-section.md
@@ -0,0 +1,90 @@
+---
+description: App Section
+---
+
+# Savings Threads \[App Section]
+
+**Savings Threads** is the section of the app where you can manage [savings-threads.md](key-concepts/savings-threads.md "mention").
+
+
Cloudthread Savings Threads Section
+
+## Key Features
+
+### Create New Thread Button
+
+Creating a new thread functionality.
+
+### Threads Summary Card
+
+Summary of the [savings-threads.md](key-concepts/savings-threads.md "mention") created:
+
+* Number of threads and estimated savings by thread status (see [#optimization-context](key-concepts/savings-threads.md#optimization-context "mention"))
+
+### Savings Threads Table
+
+List of all the threads with the following columns:
+
+* Thread ID
+* Thread Name
+* Estimated Monthly Savings
+* Number of Opportunities assigned
+* Status
+
+{% hint style="info" %}
+Each row in the table can be **extended** to see the list of **assigned** **opportunities**.
+{% endhint %}
+
+### Assigned Opportunities Table
+
+List of all opportunities assigned to threads. Filtered view of the [opportunities-explorer.md](opportunities-explorer.md "mention") main table.
+
+### Savings Thread Details Page
+
+
Savings Thread Details Page
+
+By clicking on the **Thread ID** in the tables above, you will be redirected to **Savings Thread Details Page** containing detailed context on the thread. See [savings-threads.md](key-concepts/savings-threads.md "mention") for description of the context types.
+
+#### Start Workflow Button
+
+The button for creating a **JIRA ticket** based on the Thread. It starts the implementation workflow and changes the thread status to **Active.**
+
+
+
+
+
+
+
+{% hint style="warning" %}
+**JIRA integration** is required. See [#jira-integration](../settings/slack-integration.md#jira-integration "mention") for details.
+{% endhint %}
+
+#### Reject Thread Button
+
+Rejects thread and sets its status to **Rejected**.
+
+{% hint style="warning" %}
+All the opportunities of rejected thread are getting **archived**.
+{% endhint %}
+
+#### Savings Potential Card
+
+Total savings potential of the thread.
+
+#### JIRA Issues Card
+
+List of all JIRA issues associated with he thread.
+
+#### Description Card
+
+Details of the thread (entered at the time of thread creation).
+
+#### Opportunities Table
+
+List of [optimization-opportunities.md](key-concepts/optimization-opportunities.md "mention") assigned to the Thread.
+
+#### GitHub PRs Table
+
+List of GitHub PRs associated with the Thread.
+
+
+
diff --git a/fundamentals/cost-transparency/cost-view-library.md b/fundamentals/cost-transparency/cost-view-library.md
index 1c861c0..141239a 100644
--- a/fundamentals/cost-transparency/cost-view-library.md
+++ b/fundamentals/cost-transparency/cost-view-library.md
@@ -1,5 +1,18 @@
+---
+description: App Section
+---
+
# Cost View Library
-**Cost View Library** is the section of the app where you can see all the saved [cost-view.md](cost-view.md "mention") listed: both custom and predefined ones. It is a convenient entry point into absolute cost analysis.
+**Cost View Library** is the section of the app where you can see all the saved [cost-view.md](key-concepts/cost-view.md "mention") listed: both custom and predefined ones. It is a convenient entry point into absolute cost analysis.
+
+.png>)
+
+There are **three** types of metics in the Library:
-.png>)
+* **Base** views are predefined by Cloudthread and are available after onboarding and data refresh
+ * These are the general **spend categories** based on service classification according to AWS: [https://aws.amazon.com/products/](https://aws.amazon.com/products/)
+* **Custom** cost views are defined by Cloudthread users through Create New View form and [costs-overview.md](costs-overview.md "mention") filtering and saving functionality
+ * See [creating-custom-cost-views.md](../../guides/monitoring-cloud-costs/creating-custom-cost-views.md "mention") for instructions
+* **Team Global Filters** are the Cost Views defining the filters applied to [teams.md](../settings/teams.md "mention")
+ * These Cost Views can be adjusted by Admin only and will be applied to all members of a Team
diff --git a/fundamentals/cost-transparency/cost-view.md b/fundamentals/cost-transparency/cost-view.md
deleted file mode 100644
index 953478d..0000000
--- a/fundamentals/cost-transparency/cost-view.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Cost Views
-
-**Cost View** is the base logical entity of Cost Transparency feature. It represents filtered absolute spend that can be **saved** and that alerts and reports can be **applied** to.
-
-.png>)
diff --git a/fundamentals/cost-transparency/costs-overview.md b/fundamentals/cost-transparency/costs-overview.md
index 4734089..1a3975b 100644
--- a/fundamentals/cost-transparency/costs-overview.md
+++ b/fundamentals/cost-transparency/costs-overview.md
@@ -1,52 +1,73 @@
+---
+description: App Section
+---
+
# Costs Overview
-**Costs Overview** is the section of the app where you can see insights and adjust [cost-view.md](cost-view.md "mention").
+**Costs Overview** is the section of the app where you can see insights and adjust [cost-view.md](key-concepts/cost-view.md "mention").
-### Key Features
+## Key Features
-#### Cost View Control Pane
+### Cost View Control Pane
-This is top pane of the page that includes:
+This is the top pane of the page that includes:
* Cost View name
* Filter indicator
-* Cost View **delete**, **save as new** and **save changes** buttons
+* **Delete**, **save as new** and **save changes** buttons
* [#date-picker](costs-overview.md#date-picker "mention") and [#filter-pane](costs-overview.md#filter-pane "mention")
-
+
-#### Absolute Cost Chart
+#### Date Picker
-Absolute cost chart with **current** and **previous** period spend vs. time lines.
+Date Picker is providing a convenient interface for setting the time dimension for the analysis. It includes the following functionality:
-{% hint style="info" %}
-**Previous period** is defined as period of equal length directly proceeding the current period:
+* **Quick period** setting
+ * Quick start and end date definition
+ * Yesterday, Last Week, Last Month, Last Quarter, Last Year
+* **Granularity** setting
+ * Aggregation of data by time dimension
+ * Day (default), Week, Month, Quarter, Year
-* If current period is May 1, 2022 - May 7, 2022, previous period is April 24, 2022 - April 30, 2022
+.png>)
+
+#### Filter Pane
+
+Filter pane is designed for a convenient filtering of AWS cost data and [creating-custom-cost-views.md](../../guides/monitoring-cloud-costs/creating-custom-cost-views.md "mention").
+
+{% hint style="success" %}
+Cloudthread allows for complex filtering of AWS cost data across **Account**, **Region**, **Service** and **Tag** dimensions. Both **AND** and **OR** filter conditions are supported as well as **IS** and **IS NOT** clauses and **IN** and **LIKE** conditions.
{% endhint %}
-.png>)
+
Filter Pane
-#### Absolute Cost Breakdown Chart
+{% hint style="info" %}
+Filtering includes [regular-expressions.md](key-concepts/regular-expressions.md "mention").
+{% endhint %}
-Absolute cost chart with the **additional** data dimension, but no previous period displayed.
+### Absolute Cost Chart
-This chart also has a data table attached to see the breakdown in more convenient way and control [drill-down.md](../drill-down.md "mention").
+Absolute cost chart with **current** and **previous** period spend vs. time lines.
-
+{% hint style="info" %}
+**Previous period** is defined as period of equal length directly proceeding the current period. E.g. if current period is June 17, 2022 - June 24, 2022, previous period is June 9, 2022 - June 16, 2022.
+{% endhint %}
-#### Date Picker
+The chart has setting for **Line** or **Bar** styles, and **Cumulative mode** (showing the cumulative data for current and previous month spend).
-This is functionality for setting the dates for the cost insights.
+Also the chart has [budgets.md](key-concepts/budgets.md "mention") functionality and [events-overlay.md](key-concepts/events-overlay.md "mention") (if enabled through [custom-data-api.md](../custom-data-api.md "mention")).
-.png>)
+
-#### Filter Pane
+### Absolute Cost Breakdown Chart
-Filter pane is designed for a convenient filtering of AWS cost data and [creating-custom-cost-views.md](../../guides/creating-custom-cost-views.md "mention").
+Absolute cost chart with the **additional** data dimension, but no previous period displayed.
-{% hint style="success" %}
-Cloudthread allows for complex filtering of AWS cost data across **Account**, **Region**, **Service** and **Tag** dimensions. Both **AND** and **OR** filter conditions are supported as well as **IS** and **IS NOT** clauses.
-{% endhint %}
+This chart also has a data table attached to see the breakdown in more convenient way and control [drill-down.md](key-concepts/drill-down.md "mention").
+
+
+
+### Tag Analyzer
-
+Table with spend distributed by tag. See [tag-analyzer.md](key-concepts/tag-analyzer.md "mention") for more details.
diff --git a/fundamentals/cost-transparency/key-concepts/README.md b/fundamentals/cost-transparency/key-concepts/README.md
new file mode 100644
index 0000000..cca5b04
--- /dev/null
+++ b/fundamentals/cost-transparency/key-concepts/README.md
@@ -0,0 +1,2 @@
+# Key Concepts
+
diff --git a/fundamentals/cost-transparency/key-concepts/budgets.md b/fundamentals/cost-transparency/key-concepts/budgets.md
new file mode 100644
index 0000000..15a467f
--- /dev/null
+++ b/fundamentals/cost-transparency/key-concepts/budgets.md
@@ -0,0 +1,7 @@
+# Budgets
+
+**Budgets** feature allows to set alerts on total cumulative spend that are getting visualized on the chart.
+
+{% hint style="info" %}
+See [managing-account-and-team.md](../../../guides/monitoring-cloud-costs/managing-account-and-team.md "mention") guide for detailed information on the feature.
+{% endhint %}
diff --git a/fundamentals/cost-transparency/key-concepts/cost-allocation-rules.md b/fundamentals/cost-transparency/key-concepts/cost-allocation-rules.md
new file mode 100644
index 0000000..786cd19
--- /dev/null
+++ b/fundamentals/cost-transparency/key-concepts/cost-allocation-rules.md
@@ -0,0 +1,3 @@
+# Cost Allocation Rules
+
+**Cost Allocation Rules** allow to define custom cost split rules and create **tags** based on them. This is needed for slicing the cost data and allocating the spend to the dimensions that are not provided by cloud data.
diff --git a/fundamentals/cost-transparency/key-concepts/cost-view.md b/fundamentals/cost-transparency/key-concepts/cost-view.md
new file mode 100644
index 0000000..6c787f7
--- /dev/null
+++ b/fundamentals/cost-transparency/key-concepts/cost-view.md
@@ -0,0 +1,5 @@
+# Cost Views
+
+**Cost View** is the base logical entity of Cost Transparency feature. It represents **filtered** absolute spend that can be **saved** and that [notifications](../../notifications/ "mention") can be applied to.
+
+.png>)
diff --git a/fundamentals/cost-transparency/key-concepts/drill-down.md b/fundamentals/cost-transparency/key-concepts/drill-down.md
new file mode 100644
index 0000000..a354849
--- /dev/null
+++ b/fundamentals/cost-transparency/key-concepts/drill-down.md
@@ -0,0 +1,9 @@
+# Drill-Down
+
+**Drill-Down** is a feature allowing to dig into the absolute costs for [performing-root-cause-analysis.md](../../../guides/monitoring-cloud-costs/performing-root-cause-analysis.md "mention") and other cost analysis activities.
+
+{% hint style="info" %}
+Drill-down currently allows for **Account -> Region -> Service -> Usage Type -> Operation -> Resource** level sequence.
+{% endhint %}
+
+
diff --git a/fundamentals/cost-transparency/key-concepts/events-overlay.md b/fundamentals/cost-transparency/key-concepts/events-overlay.md
new file mode 100644
index 0000000..2b6c4b9
--- /dev/null
+++ b/fundamentals/cost-transparency/key-concepts/events-overlay.md
@@ -0,0 +1,7 @@
+# Events Overlay
+
+**Events Overlay** allows to display historical events on [#absolute-cost-chart](../costs-overview.md#absolute-cost-chart "mention") in [costs-overview.md](../costs-overview.md "mention") section for [cost-view.md](cost-view.md "mention").
+
+The events data gets uploaded to the platform through an [API](http://127.0.0.1:5000/o/TmVItW5TwUC23RxcuDg9/s/KuhDuXL0YPX22VMOHZWV/ "mention") in a time series format, following [ingesting-custom-data.md](../../../guides/monitoring-cloud-costs/ingesting-custom-data.md "mention") process.
+
+
Events Overlay
diff --git a/fundamentals/cost-transparency/key-concepts/kubernetes-dimensions.md b/fundamentals/cost-transparency/key-concepts/kubernetes-dimensions.md
new file mode 100644
index 0000000..af4d3a2
--- /dev/null
+++ b/fundamentals/cost-transparency/key-concepts/kubernetes-dimensions.md
@@ -0,0 +1,9 @@
+# Kubernetes Dimensions
+
+**Kubernetes Dimensions** is a feature allowing for [performing-k8s-cost-analysis.md](../../../guides/monitoring-cloud-costs/performing-k8s-cost-analysis.md "mention").
+
+{% hint style="info" %}
+**Cluster**, **Namespace**, **Pod**, **Label** are currently available as Kubernetes Dimensions in Filter Pane of [costs-overview.md](../costs-overview.md "mention") section.
+{% endhint %}
+
+Cloudthread is performing container cost allocation for Kubernetes by distributing EC2 instance costs billed by AWS to K8s containers based on [Prometheus](https://prometheus.io/) monitoring data. We use container **CPU**, **Memory** and **Network** consumption data metrics as the basis for cost allocation.
diff --git a/fundamentals/cost-transparency/key-concepts/low-utilization-detection.md b/fundamentals/cost-transparency/key-concepts/low-utilization-detection.md
new file mode 100644
index 0000000..a3ff80d
--- /dev/null
+++ b/fundamentals/cost-transparency/key-concepts/low-utilization-detection.md
@@ -0,0 +1,7 @@
+# Low Utilization Detection
+
+This feature identifies underutilized EC2, RDS and ECS resources and recommends cost-saving actions such as rightsizing or instance shut-off (for stone-cold resources).
+
+Underutilized EC2 instances are definitely among the most common obstacles on the way to cloud compute cost efficiency in AWS. Your engineering teams are launching instances at scale, and not all of those instances are sized properly. As a result, money gets wasted and wrong commitments are made.
+
+Cloudthread platform now uncovers underutilized EC2 instances for you and recommends better fitting instance sizes. Utilization is measured for CPU and Memory dimensions, and resources with less than a customizable threshold get surfaced with an appropriate resizing recommendation. Potential savings get calculated and highlighted as well, so that you know what should be adjusted first.\
diff --git a/fundamentals/cost-transparency/key-concepts/movers-and-shakers-snapshot.md b/fundamentals/cost-transparency/key-concepts/movers-and-shakers-snapshot.md
new file mode 100644
index 0000000..cedbf93
--- /dev/null
+++ b/fundamentals/cost-transparency/key-concepts/movers-and-shakers-snapshot.md
@@ -0,0 +1,10 @@
+# Movers and Shakers Snapshot
+
+This is part of our reporting functionality that allows you to set up spend thresholds on entire dimensions (Service, Account, Region), and get weekly reports or daily digests highlighting only the threshold-passing changes.
+
+Classic anomaly detection is great, but it always has to deal with the signal vs. noise tradeoff, and no one gets it right. Cloudthread gives its spin on the solution of this problem by introducing Movers and Shakers reports – a reporting functionality that stands between simple threshold alerts and full-fledged anomaly detection.
+
+Platform now allows setting spend thresholds (both absolute and relative, i.e. %) on the key dimensions, and have a convenient insight into what is "moving and shaking" – every week as part of weekly [reports.md](../../notifications/reports.md "mention"), or on a daily basis (concise report sent to Slack or email only in case the thresholds are broken on a given day). The key convenience part is coming from the fact that the entire dimensions are covered by a single setup, and you get the comprehensive list of key changes happening within the dimension, in a controlled way. We currently support AWS Account, Region and Service dimensions, and more are on the way.\
+
+
+
diff --git a/fundamentals/cost-transparency/key-concepts/regular-expressions.md b/fundamentals/cost-transparency/key-concepts/regular-expressions.md
new file mode 100644
index 0000000..4cbcb64
--- /dev/null
+++ b/fundamentals/cost-transparency/key-concepts/regular-expressions.md
@@ -0,0 +1,14 @@
+# Regular Expressions
+
+Cloudthread platform allows for use of **regular expressions (regex)** in filter conditions in [costs-overview.md](../costs-overview.md "mention") as well as in [unit-metric.md](../../unit-metrics/key-concepts/unit-metric.md "mention") sections.
+
+We support 2 types of regex filtering:
+
+* `IN` conditions (single choice): POSIX-style regex
+ * `^abc.*`
+ * [https://quickref.me/regex](https://quickref.me/regex)
+ * Case sensitive
+* `LIKE` conditions (bulk select): database `LIKE` statement pattern matching
+ * `%abc%`
+ * [Example](https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-LIKE) for Postgres
+ * Case sensitive
diff --git a/fundamentals/cost-transparency/key-concepts/tag-analyzer.md b/fundamentals/cost-transparency/key-concepts/tag-analyzer.md
new file mode 100644
index 0000000..64771f9
--- /dev/null
+++ b/fundamentals/cost-transparency/key-concepts/tag-analyzer.md
@@ -0,0 +1,5 @@
+# Tag Analyzer
+
+**Tag Analyzer** is a feature allowing to show spend distributed by value of a chosen tag. It is a convenient way to dig into AWS cloud costs within the well-tagged environment.
+
+
diff --git a/fundamentals/cost-transparency/rule-editor.md b/fundamentals/cost-transparency/rule-editor.md
new file mode 100644
index 0000000..f63f792
--- /dev/null
+++ b/fundamentals/cost-transparency/rule-editor.md
@@ -0,0 +1,98 @@
+---
+description: App Section
+---
+
+# Rule Lab
+
+**Rule Lab** is the section of the app where you can define [cost-allocation-rules.md](key-concepts/cost-allocation-rules.md "mention").
+
+
Cloudthread Rule Lab
+
+## Key Features
+
+### Rule Lab Control Pane
+
+
+
+This is the top pane of the page that includes:
+
+* Rule name
+ * This is editable
+* **Delete**, **Save** and **Save As** buttons
+* [#cost-type-selector](rule-editor.md#cost-type-selector "mention")
+* [#month-picker](rule-editor.md#month-picker "mention")
+
+#### Cost Type Selector
+
+Allows for choosing the cost type and adding/removing cost components such as Taxes, Credits, Refunds, Discounts, Fees as well as Amortization.
+
+
+
+
+
+
+
+#### Month Picker
+
+Needed for showing the total cost per rule.
+
+
+
+
+
+
+
+### Tags Summary Pane
+
+This pane summarizes all Custom Tags you have created in Rule Lab.
+
+
+
+
+
+
+
+#### Export Costs Button
+
+The button saves the costs distributed by tags (by cost allocation rules) in CSV format.
+
+### Rule Lab Interface
+
+This is the interface for creating and editing the [cost-allocation-rules.md](key-concepts/cost-allocation-rules.md "mention").
+
+
+
+
+
+
+
+The interface has **2 major steps**:
+
+1. Costs source dropdown
+2. Split Dimension dropdown
+
+#### Costs Source Dropdown
+
+Currently 2 options are available:
+
+* AWS Costs
+* Custom Data from [custom-data-api.md](../custom-data-api.md "mention")
+
+#### Split Dimension Dropdown
+
+The data dimensions for the split, based on the [#costs-source-dropdown](rule-editor.md#costs-source-dropdown "mention")
+
+* For AWS:
+ * Accounts
+ * Payer Accounts
+ * Regions
+ * Tags
+ * Services
+ * Invoice IDs
+ * Charge Categories
+ * Purchase Options
+ * RI / SP ARNs
+
+{% hint style="success" %}
+You can see the instructions on how to create the rule in [setting-up-cost-allocation-rules.md](../../guides/monitoring-cloud-costs/setting-up-cost-allocation-rules.md "mention") guide.
+{% endhint %}
diff --git a/fundamentals/cost-transparency/rules-library.md b/fundamentals/cost-transparency/rules-library.md
new file mode 100644
index 0000000..d8c8766
--- /dev/null
+++ b/fundamentals/cost-transparency/rules-library.md
@@ -0,0 +1,9 @@
+---
+description: App Section
+---
+
+# Rule Library
+
+**Rule Library** is the section of the app where you can see and manage all saved [cost-allocation-rules.md](key-concepts/cost-allocation-rules.md "mention").
+
+
Cloudthread Rules Library
diff --git a/fundamentals/custom-data-api.md b/fundamentals/custom-data-api.md
new file mode 100644
index 0000000..b433df2
--- /dev/null
+++ b/fundamentals/custom-data-api.md
@@ -0,0 +1,3 @@
+# Custom Data API
+
+See [API](http://127.0.0.1:5000/o/TmVItW5TwUC23RxcuDg9/s/KuhDuXL0YPX22VMOHZWV/ "mention") for detailed infromation.
diff --git a/fundamentals/dashboards/README.md b/fundamentals/dashboards/README.md
new file mode 100644
index 0000000..ca3630c
--- /dev/null
+++ b/fundamentals/dashboards/README.md
@@ -0,0 +1,21 @@
+---
+description: Feature focused on summary cost data presentation
+---
+
+# Custom Dashboards
+
+**Dashboards** are collections of visualized data entities created on the platform: [cost-view.md](../cost-transparency/key-concepts/cost-view.md "mention") abd [unit-metric.md](../unit-metrics/key-concepts/unit-metric.md "mention").
+
+Dashboards represent a shareable object within the platform – they can be created, saved, changed, deleted, shared and restricted.
+
+{% content-ref url="summary-dashboard.md" %}
+[summary-dashboard.md](summary-dashboard.md)
+{% endcontent-ref %}
+
+{% content-ref url="dashboards-lab.md" %}
+[dashboards-lab.md](dashboards-lab.md)
+{% endcontent-ref %}
+
+{% content-ref url="dashboards-library.md" %}
+[dashboards-library.md](dashboards-library.md)
+{% endcontent-ref %}
diff --git a/fundamentals/dashboards/dashboards-lab.md b/fundamentals/dashboards/dashboards-lab.md
new file mode 100644
index 0000000..364908b
--- /dev/null
+++ b/fundamentals/dashboards/dashboards-lab.md
@@ -0,0 +1,41 @@
+---
+description: App Section
+---
+
+# Dashboards Lab
+
+**Dashboards Lab** is an interface for creating [.](./ "mention").
+
+{% hint style="info" %}
+Refer to [creating-custom-dashboards.md](../../guides/monitoring-cloud-costs/creating-custom-dashboards.md "mention") guide to see how to create custom dashboards.
+{% endhint %}
+
+### Key Features
+
+#### Dashboards Lab Control Pane
+
+This is the top pane of the page that includes:
+
+* Dashboard name
+* **Delete**, **Save as New** and **Save Changes** buttons
+
+#### Dashboards Widget Interface
+
+This is where you add and adjust widgets on the dashboard.
+
+{% hint style="info" %}
+As or now, there are two types of widgets:
+
+* [cost-view.md](../cost-transparency/key-concepts/cost-view.md "mention") line chart
+* [unit-metric.md](../unit-metrics/key-concepts/unit-metric.md "mention") line chart
+{% endhint %}
+
+In order to create widget, the following sequence of actions is required:
+
+1. Click Add Widget button
+2. Choose Widget Type
+3. Choose data object to visualize
+4. Choose Duration
+5. Choose Granularity
+
+
Dashboards Lab
diff --git a/fundamentals/dashboards/dashboards-library.md b/fundamentals/dashboards/dashboards-library.md
new file mode 100644
index 0000000..c6de43c
--- /dev/null
+++ b/fundamentals/dashboards/dashboards-library.md
@@ -0,0 +1,11 @@
+---
+description: App Section
+---
+
+# Dashboards Library
+
+**Dashboards Library** is the section of the app where you can see all the saved [.](./ "mention")listed: both custom and predefined ones.
+
+To add the dashboard to the Library, see [creating-custom-dashboards.md](../../guides/monitoring-cloud-costs/creating-custom-dashboards.md "mention") guide.
+
+
Dashboards Library
diff --git a/fundamentals/dashboards/summary-dashboard.md b/fundamentals/dashboards/summary-dashboard.md
new file mode 100644
index 0000000..e73a098
--- /dev/null
+++ b/fundamentals/dashboards/summary-dashboard.md
@@ -0,0 +1,27 @@
+---
+description: App Section
+---
+
+# Summary Dashboard
+
+**Summary Dashboard** is a high-level overview of the cloud costs for integrated accounts. It serves as an entry point to Cloudthread platform.
+
+{% hint style="info" %}
+Summary Dashboard is a fixed pre-build **Dashboard** object that serves as a summary view with standard structure for all the users (the data can differ based on user data visibility restrictions).
+{% endhint %}
+
+Summary Dashboard has the following **components**:
+
+* Total absolute spend trends
+ * Total spend cards
+ * Absolute spend chart
+ * Absolute spend breakdown by major dimensions
+ * Regions
+ * Accounts
+ * Services
+* Top 5 Cost Views
+ * Ordered by Period-over-Period Change %
+* Top 5 Unit Metrics highlighted
+ * Ordered by Period-over-Period Change %
+
+
Summary Dashboard
diff --git a/fundamentals/notifications/alerts.md b/fundamentals/notifications/alerts.md
index 006e3dd..80f0712 100644
--- a/fundamentals/notifications/alerts.md
+++ b/fundamentals/notifications/alerts.md
@@ -3,17 +3,17 @@
**Alerts** are short notifications sent on certain event (like threshold break).
{% hint style="info" %}
-Cloudthread supports **e-mail** and **Slack** alerts. See [setting-up-alerts-and-reports.md](../../guides/setting-up-alerts-and-reports.md "mention") for setup instructions.
+Cloudthread supports **email** and **Slack** alerts. See [setting-up-alerts-and-reports.md](../../guides/monitoring-cloud-costs/setting-up-alerts-and-reports.md "mention") for setup instructions.
{% endhint %}
### Email Alerts
-.png>)
+
Cloudthread email alert
### Slack Alerts
{% hint style="info" %}
-See [slack-integration.md](slack-integration.md "mention") for the instructions on Slack setup.
+See [#slack-integration](../settings/slack-integration.md#slack-integration "mention") for the instructions on Slack setup.
{% endhint %}
-.png>)
+
Cloudthread Slack Alert
diff --git a/fundamentals/notifications/reports.md b/fundamentals/notifications/reports.md
index 5d6dbb5..82021ce 100644
--- a/fundamentals/notifications/reports.md
+++ b/fundamentals/notifications/reports.md
@@ -3,15 +3,42 @@
**Reports** are detailed notifications sent on schedule.
{% hint style="info" %}
-Cloudthread supports **e-mail** and **Slack** reports. See [setting-up-alerts-and-reports.md](../../guides/setting-up-alerts-and-reports.md "mention") for setup instructions.
+Cloudthread supports the delivery of reports through **e-mail** and **Slack**. See [setting-up-alerts-and-reports.md](../../guides/monitoring-cloud-costs/setting-up-alerts-and-reports.md "mention") for setup instructions.
{% endhint %}
-### Email Reports
+{% hint style="success" %}
+Cloudthread supports 3 types of Reports:
-
+* **Daily Cost Update**
+* **Weekly Cost Report**
+ * **Movers & Shakers Section**
+ * This report is a type of anomaly detection implemented on Cloudthread platform: it is being sent only in case there are significant changes in cost detected within the whole AWS environment
+* **Weekly Savings Report**
+ * Report on [optimization-opportunities.md](../cost-savings/key-concepts/optimization-opportunities.md "mention")
+{% endhint %}
+
+{% hint style="info" %}
+Movers & Shakers is the version of **anomaly detection** Cloudthread platform supports.
+{% endhint %}
+
+## **Cost** Reports
+
+### Email
+
+
Cloudthread Email Weekly Cost Report
+
+### Slack
+
+
Cloudthread Slack Weekly Cost Report
+
+## Savings Report
+Savings report is part of [cost-savings](../cost-savings/ "mention") functionality. It is generated on a weekly basis and brings up the [optimization-opportunities.md](../cost-savings/key-concepts/optimization-opportunities.md "mention") discovered during the week.
+The report has 3 parts:
-### Slack Reports
+* Total savings statistics
+* Workflows summary: [savings-threads.md](../cost-savings/key-concepts/savings-threads.md "mention")
+* Top 5 opportunities
-
+
Cloudthread Savings Report
diff --git a/fundamentals/notifications/slack-integration.md b/fundamentals/notifications/slack-integration.md
deleted file mode 100644
index 0c08290..0000000
--- a/fundamentals/notifications/slack-integration.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Slack Integration
-
-On order to setup Slack for [alerts.md](alerts.md "mention") and [reports.md](reports.md "mention") you need to follow this guide: [https://api.slack.com/messaging/webhooks](https://api.slack.com/messaging/webhooks).
-
-Once you have **webhooks** setup, you will need to enter then into the dedicated fields outlined in [setting-up-alerts-and-reports.md](../../guides/setting-up-alerts-and-reports.md "mention").
diff --git a/fundamentals/settings/README.md b/fundamentals/settings/README.md
new file mode 100644
index 0000000..29e82f8
--- /dev/null
+++ b/fundamentals/settings/README.md
@@ -0,0 +1,2 @@
+# Settings
+
diff --git a/fundamentals/settings/account-and-team-management.md b/fundamentals/settings/account-and-team-management.md
new file mode 100644
index 0000000..2c12865
--- /dev/null
+++ b/fundamentals/settings/account-and-team-management.md
@@ -0,0 +1,27 @@
+# User Management
+
+Within your account there can be **Admins** and **Users**.
+
+{% hint style="info" %}
+The user that creates your account will automatically be an **Admin**.
+{% endhint %}
+
+### **Member**
+
+**Members** have the ability to:
+
+* Use [cost-transparency](../cost-transparency/ "mention") and [unit-metrics](../unit-metrics/ "mention") features in full
+* Create [cost-view.md](../cost-transparency/key-concepts/cost-view.md "mention") and [unit-metric.md](../unit-metrics/key-concepts/unit-metric.md "mention") that are available to **all** other users
+* Create [alerts.md](../notifications/alerts.md "mention") and [reports.md](../notifications/reports.md "mention") that will be delivered **only to them** via email and/or Slack
+* Use [cost-savings](../cost-savings/ "mention") and [tag-assistant](../tag-assistant/ "mention") features in full
+
+### **Admin**
+
+**Admins** have the ability to do everything **Users** can do, plus:
+
+* Create new **Users** or **Admins** (Account -> Team Management)
+* Create [alerts.md](../notifications/alerts.md "mention") and [reports.md](../notifications/reports.md "mention") that can be delivered to **any** email, **any** Slack user, and **any** Slack channel
+
+{% hint style="success" %}
+See [managing-account-and-team-1.md](../../guides/onboarding/managing-account-and-team-1.md "mention") for detailed instructions on how to invite new users.
+{% endhint %}
diff --git a/fundamentals/settings/api-keys.md b/fundamentals/settings/api-keys.md
new file mode 100644
index 0000000..45e024d
--- /dev/null
+++ b/fundamentals/settings/api-keys.md
@@ -0,0 +1,5 @@
+# API Keys
+
+This section of [.](./ "mention") has an ability to add API keys for [custom-data-api.md](../custom-data-api.md "mention").
+
+
diff --git a/fundamentals/settings/cost-columns.md b/fundamentals/settings/cost-columns.md
new file mode 100644
index 0000000..97159a1
--- /dev/null
+++ b/fundamentals/settings/cost-columns.md
@@ -0,0 +1,9 @@
+# Cost Columns
+
+**Custom Cost Columns** is the feature that allows to create new cost metrics based on the existing ones. It is basically the functionality around adding new calculated column to the cost dataset based on a formula involving current columns and arithmetic operations.
+
+{% hint style="info" %}
+Currently Cloudhtread supports **Unblended Cost** and **Public Cost** as the base columns.
+{% endhint %}
+
+
diff --git a/fundamentals/settings/data-collection.md b/fundamentals/settings/data-collection.md
new file mode 100644
index 0000000..52c0f57
--- /dev/null
+++ b/fundamentals/settings/data-collection.md
@@ -0,0 +1,66 @@
+# Pull Data Collection
+
+Cloudthread provides easy integrations for data sets across your environment. The information below explains different integrations options to have Cloudthread pull or push data from your environment.
+
+
+
+## AWS
+
+Cloudthread's AWS integrations are all Cloudformation Stack based.
+
+There are four options:
+1. New Cost and Usage report for a single AWS account
+2. New Cost and Usage report for AWS master and sub-acounts (AWS Organizations)
+3. Existing Cost and Usage report for a single AWS account
+4. Existing Cost and Usage report for AWS master and sub-acounts (AWS Organizations)
+
+You can generate these templates in the Settings > Data Collection part of the platform.
+
+**Cloudthread existing Cost and Usage report requirements**:
+
+1. Hourly time granularity
+2. Parquet file type
+3. Overwrite Report file versioning
+4. Resource ID level report content
+
+### New Cost and Usage report
+
+This stack template is for companies who do not already have a Cost and Usage report that matches Cloudthread's requirements. This template should be run in your main account if you're not using AWS Organizations, or in your organization root account if you are using AWS Organizations. If you're using AWS Organizations your organization Root ID will be required.
+
+### Existing Cost and Usage Report
+
+This stack template is for companies who have an existing Cost and Usage report that matches Cloudthread's requirements. You will be required to submit your report name, report prefix, and report bucket in the creation form. This template should be run in your main account if you're not using AWS Organizations, or in your organization root account if you are using AWS Organizations. If you're using AWS Organizations your organization Root ID will be required.
+
+Exact permissions can be found in [Cloudthread Policy](../../policy\_cfn\_cldthrd.yaml)
+
+## Kubernetes
+
+Cloudthread's K8s integration is Helm Chart based.
+
+Cloudthread requires a **Data Stream Token** to process incoming K8s ingestion requests (similar to Custom API requests). This token helps organize and control the flow of data. Data Stream Tokens are generated with a **Data Stream Type** that determines how the incoming data is validated. Admin's have the ability to generate a Data Stream Token on the Cloudthread platform within the **Settings** tab.
+
+### Kubernetes EKS
+
+Our K8s EKS integration requires a data stream token to be generated with **Data Stream Type** `kubernetes` - generating this token will also generate the AWS Role Arn and External ID required for a K8s EKS integration.
+
+1. Generate a **Data Stream Token** with **Data Stream Type** `kubernetes` from the **Settings** tab
+2. Copy the generated data stream token, AWS credentials (Role Arn and External ID), and your Organiztion ID
+3. Add cloudhtread helm charts with: `helm repo add cloudthread https://cloudthread.github.io/helm-charts/`
+4. Create a kubernetes namespace to run the exporter `kubectl create namespace cloudthread`
+5. Install kubernetes exporter with a command like this one:
+
+```
+helm install kubex cloudthread/cloudtread-kubex \
+ --namespace cloudthread \
+ --set cloudthread.role_arn= YOUR ROLE_ARN \
+ --set cloudthread.role_external_id= YOUR ROLE_EXTERNAL_ID \
+ --set cloudthread.stream_token= YOUR STREAM_TOKEN \
+ --set cloudthread.org_id= YOUR ORGANIZATION_ID \
+ --set cloudthread.dst_bucket=cloudthread-push \
+ --set cloudthread.cluster_id= OPTIONAL HUMAN READABLE CLUSTER ID \
+ --set cloudthread.region= CLOSEST AWS REGION
+```
+
+### Kubernetes EC2
+
+Coming soon! Please contact support@cloudthread.io for more info.
diff --git a/fundamentals/settings/integrations.md b/fundamentals/settings/integrations.md
new file mode 100644
index 0000000..ad7f470
--- /dev/null
+++ b/fundamentals/settings/integrations.md
@@ -0,0 +1,142 @@
+# Integrations
+
+**Integrations** section of [.](./ "mention") has **Slack** and **Jira** integrations available.
+
+
+
+
+
+
+
+## Slack Integration
+
+In order to setup **Slack** for [alerts.md](../notifications/alerts.md "mention") and [reports.md](../notifications/reports.md "mention") you need to navigate to **Settings** menu item at the bottom part of the menu to the left, choose **Integrations** section and click Slack button.
+
+After that you will be redirected to the Slack setup page.
+
+
+
+
+
+
+
+Once you have Slack setup, you will have your workspace channels available in [setting-up-alerts-and-reports.md](../../guides/monitoring-cloud-costs/setting-up-alerts-and-reports.md "mention").
+
+## Jira Integration
+
+In order to use [savings-threads.md](../cost-savings/key-concepts/savings-threads.md "mention") workflow functionality, you need to set up Jira **integration.**
+
+{% hint style="success" %}
+Cloudthread currently supports only [Jira project management](https://www.atlassian.com/software/jira) integration. Both **Cloud** and **Server** versions are supported.
+{% endhint %}
+
+### Jira Cloud
+
+
+
+#### Detailed instructions
+
+1. Once you click `Integrate` in Integrations section of Settings, you will be redirected to Atlassian sign-in
+2. Sign in or create an account for JIRA cloud
+3. Accept access request
+
+
+
+
+
+
+4. Come back to Cloudthread app to verify that integration is successful
+
+
+
+
+
+
+
+### Jira Server
+
+
+
+
+
+
+
+The following instructions are for version 9.11 in the Application Link in official [Jira documentation](https://app.cloudthread.io/settings/third-party-integrations?provider=jira\_server).
+
+For older versions, please follow the Jira documentation.
+
+#### Detailed instructions
+
+1. Go to Jira Administration > Applications > Application Links
+2. Click `Create Link` and select `External application` + `Direction Incoming`
+3. For Name - set to whatever they want (`Cloudthread` is fine)
+4. For Redirect URL - set to [`https://app.cloudthread.io/settings/third-party-integrations?provider=jira_server`](https://app.cloudthread.io/settings/third-party-integrations?provider=jira\_server)
+5. For Application permissions - set to `Write`
+6. Click `Save`
+7. Go to Cloudthread and Settings >Integrations and click `JIRA Server`
+8. Enter:
+9. Client ID from step 6
+10. Client Secret from step 6
+11. Jira server url including https:// and no trailing slash (e.g. [`https://mycompany.atlassian.server.com`](https://mycompany.atlassian.server.com/))
+12. Follow through integration flow
+
+### Jira Webhook
+
+{% hint style="info" %}
+Some helpful information about adding a new webhook you can find in official [Jira documentation](https://developer.atlassian.com/cloud/jira/platform/webhooks/).
+{% endhint %}
+
+#### Detailed Instructions for Jira Cloud
+
+1. In Jira go into Settings → System
+
+
+5. Put Cloudthread WebHook URL into URL field in `Create a WebHook` UI in Jira cloud
+
+
+
+
+
+
+
+
+6. Select ‘updated’ and ‘deleted’ events for Jira issues. You are allowed to write a specific JQL query for the related project to reduce the amount of events that are sent to Cloudthread
+
+
+
+
+
+
+
+
diff --git a/fundamentals/settings/payment.md b/fundamentals/settings/payment.md
new file mode 100644
index 0000000..c7a1bd4
--- /dev/null
+++ b/fundamentals/settings/payment.md
@@ -0,0 +1,5 @@
+# Payment
+
+Cloudthread is billed as a SaaS product and has **3 payment tiers**: Startup, Growth, Enterprise.
+
+
diff --git a/fundamentals/settings/push-data-collection.md b/fundamentals/settings/push-data-collection.md
new file mode 100644
index 0000000..4763ce0
--- /dev/null
+++ b/fundamentals/settings/push-data-collection.md
@@ -0,0 +1,5 @@
+# Push Data Collection
+
+Cloudthread supports data ingestion through [custom-data-api.md](../custom-data-api.md "mention").
+
+
diff --git a/fundamentals/settings/savings-opportunities-settings.md b/fundamentals/settings/savings-opportunities-settings.md
new file mode 100644
index 0000000..d55fe52
--- /dev/null
+++ b/fundamentals/settings/savings-opportunities-settings.md
@@ -0,0 +1,41 @@
+# Savings Opportunities Settings
+
+This is the section of [.](./ "mention") that allows to modify [optimization-opportunities.md](../cost-savings/key-concepts/optimization-opportunities.md "mention") detection criteria.
+
+
+
+
+
+
+
+{% hint style="success" %}
+Opportunity settings can be defined for **all** the accounts or for the **specific** accounts.
+{% endhint %}
+
+## Savings Opportunities settings types
+
+All [optimization-opportunities.md](../cost-savings/key-concepts/optimization-opportunities.md "mention") have the **On/Off** setting, i.e. you can mange if certain opportunities are being detected for the specific accounts (or all the accounts).
+
+
+
+
+
+
+
+For some opportunities there are additional settings available. These are mainly opportunities of **Usage type** (see [#optimization-type](../cost-savings/key-concepts/optimization-opportunities.md#optimization-type "mention") for more context). Examples of the adjustable threshold settings include:
+
+* % CPU utilization
+* Number of lookback days for analysis
+* % of freeable Memory
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/fundamentals/settings/sso.md b/fundamentals/settings/sso.md
new file mode 100644
index 0000000..90559d9
--- /dev/null
+++ b/fundamentals/settings/sso.md
@@ -0,0 +1,27 @@
+# SSO
+
+Cloudthread supports **Single Sign On** functionality for Enterprise users.
+
+{% hint style="info" %}
+[WorkOS Single Sign-On](https://workos.com/docs/sso) is used to enable SSO functionality. It supports all major SSO providers and allows for easy integration.
+{% endhint %}
+
+To enable SSO for your organisation, follow these steps:
+
+1. Go to Settings -> SSO
+2. Add allowed domain and click `+` and then `Update Settings`
+
+ * If you want to allow domains outside the allowed list, make sure to turn on the `Allow profiles outside allowed domains` toggle
+
+
+
+
+3. Click `Set Up Connection` – you will be redirected to WorkOS interface
+
+ * Choose the SSO provider you use and follow the instructions
+
+
+
+
+4. Change your org slug in [user-profile.md](user-profile.md "mention") section if needed
+
diff --git a/fundamentals/settings/teams.md b/fundamentals/settings/teams.md
new file mode 100644
index 0000000..07601ee
--- /dev/null
+++ b/fundamentals/settings/teams.md
@@ -0,0 +1,18 @@
+# Teams
+
+Cloudthread platform allows to assign users to **Teams** that have **global filters** enabled, i.e. every user belonging to the Team can see all the data filtered without an ability to remove the filtering.
+
+
+
+## Create New Team Form
+
+Creating new team is performed via pressing the button and filling in the form.
+
+The Team can tbe set up with:
+
+* **Global filter**
+* **Slack channel**
+ * See [#slack-integration](slack-integration.md#slack-integration "mention")
+* **Cost Columns**
+
+
diff --git a/fundamentals/settings/user-profile.md b/fundamentals/settings/user-profile.md
new file mode 100644
index 0000000..c0c8ea4
--- /dev/null
+++ b/fundamentals/settings/user-profile.md
@@ -0,0 +1,30 @@
+# Profile
+
+This is the section of [.](./ "mention") that allows to modify **User Profile** information.
+
+
+
+
+
+
+
+## Changeable profile features
+
+* User Name
+* Organization Name
+* Email
+* Password
+
+## Feature Flags
+
+Currently Cloudthread app supports 2 main modes: **Cost Savings** and **Visibility Suite.**
+
+For some clients it is possible to choose between the modes by changing the feature flag.
+
+#### Cost Savings Mode
+
+Includes [cost-savings](../cost-savings/ "mention") features.
+
+#### Visibility Suite Mode
+
+Includes [cost-transparency](../cost-transparency/ "mention"), [unit-metrics](../unit-metrics/ "mention") and [tag-assistant](../tag-assistant/ "mention") features.
diff --git a/fundamentals/tag-assistant/README.md b/fundamentals/tag-assistant/README.md
new file mode 100644
index 0000000..277996b
--- /dev/null
+++ b/fundamentals/tag-assistant/README.md
@@ -0,0 +1,6 @@
+---
+description: Features focused on tagging insights and automation
+---
+
+# Tag Assistant
+
diff --git a/fundamentals/tag-assistant/tag-catalogs.md b/fundamentals/tag-assistant/tag-catalogs.md
new file mode 100644
index 0000000..7ac95d8
--- /dev/null
+++ b/fundamentals/tag-assistant/tag-catalogs.md
@@ -0,0 +1,57 @@
+---
+description: App Section
+---
+
+# Tags Catalog
+
+**Tag Catalogs** is a section of an app that covers **tagging automation** functionality Cloudthread provides.
+
+It represents the setup interface for **Tag Catalog** creation and maintenance.
+
+{% hint style="warning" %}
+Tag Automation currently is supported on **GitHub** and **Terraform** based Infrastructure as a Code (IaaC) environments.
+{% endhint %}
+
+{% hint style="warning" %}
+You can also use our `/api/tag-catalog` endpoint directly [here](https://docs.cloudthread.io/v/api-docs/reference/api-reference/tag\_catalog) via the developer API to create your own automation.
+{% endhint %}
+
+Connected to a GitHub repository through [GitHub Actions](https://docs.github.com/en/actions), Tag Catalog allows to make sure all the Terraform builds in the repository get the tags outlined in the catalog. This allows to maintain consistent tagging and control it from a single place.
+
+GitHub Actions should be set up for the repo with a Cloudthread **API Key** and **Tag Catalog Key** in Action Secrets. Based on the connection between GitHub and Cloudthread established this way, the tags from the catalog are getting propagated to the `.tf` build files in the repository: every time the action is run a PR adding new tags is created.
+
+
+
+## Key Features
+
+### Synchronize Tags Button
+
+* This syncs your current active AWS Cost Allocation tags from Cost Explorer and retrieves values from the last 7 days over all integrated **AWS Master Accounts**
+* These keys and values are then available for tag catalog tag key value pairs
+
+{% hint style="warning" %}
+If you want to add a new key to a tag catalog, you must first add it as a **Cost Allocation Tag** in AWS.
+
+Only AWS Master Accounts have access to cost allocation tags - you must integrate at least one payer AWS account to use Tag Catalogs.
+{% endhint %}
+
+### Create API Key for Tag Assistant Button
+
+This is needed for fetching tag catalog from the GitHub repository. Clicking the button redirects to [api-keys.md](../settings/api-keys.md "mention") settings page.
+
+### Create New Catalog Button
+
+This creates a new Tags Catalog. The idea is that **one tag catalog covers one repository**, so that different repositories can be tagged differently.
+
+
+
+
+
+
+
+### Tags Catalog Table
+
+This is the table containing tag Catalogs. It allows to set the tag key-value pairs within the Tag Catalog, saving the catalog state and resetting the Catalog.
+
+
+
diff --git a/fundamentals/tag-assistant/tag-overview.md b/fundamentals/tag-assistant/tag-overview.md
new file mode 100644
index 0000000..9c42326
--- /dev/null
+++ b/fundamentals/tag-assistant/tag-overview.md
@@ -0,0 +1,44 @@
+---
+description: App Section
+---
+
+# Tags Overview
+
+**Tag Overview** is a section of an app containing analytics around tagging compliance.
+
+{% hint style="info" %}
+**Tagging** is one of the foundations of cloud cost management supporting all the major phases of [FinOps cycle](https://www.finops.org/framework/phases/) (inform -> optimize -> operate).
+
+You can learn about tagging in AWS in our [blog](https://www.cloudthread.io/blog/a-complete-introductory-guide-to-aws-cost-allocation-tags).
+{% endhint %}
+
+## Key Features
+
+### Tag Overview Control Pane
+
+The pane at the top of the page that includes [#date-picker](../cost-transparency/costs-overview.md#date-picker "mention") and [#filter-pane](../cost-transparency/costs-overview.md#filter-pane "mention") similar to the ones at other sections of the app ([unit-metrics-lab.md](../unit-metrics/unit-metrics-lab.md "mention") and [costs-overview.md](../cost-transparency/costs-overview.md "mention")).
+
+### Tag Key Selection Field
+
+This is the field for a quick pre-filtering for the tag key to analyze.
+
+.png>)
+
+### Tag Coverage Overview Chart
+
+This is the chart displaying **tag coverage metric** (percentage of resources covered with tags vs all the resources) by time dimension. This excludes default tags AWS resources get by default.
+
+
+
+### Tag Coverage Breakdown Chart
+
+This is the chart with added breakdown functionality. It allows to breakdown the tag coverage metric with the following dimensions:
+
+* Account
+* Regions
+* Services
+* Usage Types
+* Operations
+* Resources
+
+
diff --git a/fundamentals/unit-metrics/key-concepts/README.md b/fundamentals/unit-metrics/key-concepts/README.md
new file mode 100644
index 0000000..cca5b04
--- /dev/null
+++ b/fundamentals/unit-metrics/key-concepts/README.md
@@ -0,0 +1,2 @@
+# Key Concepts
+
diff --git a/fundamentals/unit-metrics/key-concepts/unit-metric.md b/fundamentals/unit-metrics/key-concepts/unit-metric.md
new file mode 100644
index 0000000..5db5ac1
--- /dev/null
+++ b/fundamentals/unit-metrics/key-concepts/unit-metric.md
@@ -0,0 +1,11 @@
+# Unit Metrics
+
+**Unit Metric** is the base logical entity of Unit Economics feature. It represents the efficiency-focused cloud cost metrics that are **defined** by dividing cost value (Numerator) by certain usage value (Denominator). Unit metrics can be constructed, **saved,** and can have [notifications](../../notifications/ "mention") applied to.
+
+{% hint style="info" %}
+Unit metric is **Cost** divided by a certain **Usage** unit (Requests, Bytes, Invocations, etc).
+
+E.g. **$ per ELB Request**: AWS ELB cost divided by AWS ELB request count.
+{% endhint %}
+
+.png>)
diff --git a/fundamentals/unit-metrics/unit-metric.md b/fundamentals/unit-metrics/unit-metric.md
deleted file mode 100644
index 5400d31..0000000
--- a/fundamentals/unit-metrics/unit-metric.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Unit Metrics
-
-**Unit Metric** is the base logical entity of Unit Economics feature. It represents unit metrics that can be **constructed** by defining Numerator and Denominator, **saved,** and that alerts and reports can be **applied** to.
-
-{% hint style="info" %}
-Unit metric is **Cost** divided by certain **Usage** unit. Example: $ per Lambda Invocation.
-{% endhint %}
-
-.png>)
diff --git a/fundamentals/unit-metrics/unit-metrics-lab.md b/fundamentals/unit-metrics/unit-metrics-lab.md
index cc8f240..f072f88 100644
--- a/fundamentals/unit-metrics/unit-metrics-lab.md
+++ b/fundamentals/unit-metrics/unit-metrics-lab.md
@@ -1,31 +1,42 @@
-# Unit Metrics Overview
+---
+description: App Section
+---
-**Unit Metrics Overview** is the section of the app where you can see insights and adjust [unit-metric.md](unit-metric.md "mention").
+# Unit Metrics Lab
-### Key Features
+**Unit Metrics Lab** is the section of the app where you can see and adjust [unit-metric.md](key-concepts/unit-metric.md "mention") with charts and filters.
-#### Unit Metrics Control Pane
+{% hint style="info" %}
+Refer to [creating-custom-unit-metrics.md](../../guides/monitoring-cloud-costs/creating-custom-unit-metrics.md "mention") guide to see how to create custom unit metrics.
+{% endhint %}
-This is top pane of the page that includes:
+## Key Features
-* [unit-metrics-library.md](unit-metrics-library.md "mention")
-* [#date-picker](unit-metrics-lab.md#date-picker "mention") and [#undefined](unit-metrics-lab.md#undefined "mention")
+### Unit Metrics Control Pane
-.png>)
+
-#### Date Picker
+This is the top pane of the page that includes:
-This is functionality for setting the dates for the cost efficiency insights.
+* Unit Metric name
+* Unit Metric source
+ * This is where the denominator of the metric is coming from (CloudWatch, CUR, etc.)
+* **Delete**, **Save as New** and **Save Changes** buttons
+* [#date-picker](unit-metrics-lab.md#date-picker "mention") and [#settings-pane](unit-metrics-lab.md#settings-pane "mention")
-.png>)
+#### Date Picker
-#### New Metric Constructor
+ (2).png>)
-Constructor allows for [creating-custom-unit-metrics.md](../../guides/creating-custom-unit-metrics.md "mention") by defining Numerator and Denominator.
+#### Settings Pane
-.png>)
+Filter pane in Unit Metrics Overview designed for customizing unit metrics (editing both numerator and denominator), for more instructions see [creating-custom-unit-metrics.md](../../guides/monitoring-cloud-costs/creating-custom-unit-metrics.md "mention")
-#### Unit Metric Chart
+{% hint style="success" %}
+Cloudthread allows for complex filtering of AWS cost data across **Account**, **Region**, **Service** and **Tag** dimensions. Both **AND** and **OR** filter conditions are supported as well as **IS** and **IS NOT** clauses.
+{% endhint %}
+
+### Cost per Unit Chart
Unit Metric cost chart with **current** and **previous** period spend vs. time lines.
@@ -35,14 +46,16 @@ Unit Metric cost chart with **current** and **previous** period spend vs. time l
* If current period is May 1, 2022 - May 7, 2022, previous period is April 24, 2022 - April 30, 2022
{% endhint %}
-Unit metrics chart also allows for [#alerts](../../guides/setting-up-alerts-and-reports.md#alerts "mention") setup.
+
+
+### Numerator Chart
-.png>)
+Absolute cost chart for the **numerator** part of unit metric equation with **current** and **previous** period spend vs. time lines ($).
-#### Unit Metric Numerator Chart
+
-Absolute cost chart for the Numerator part of Unit Metric with **current** and **previous** period spend vs. time lines ($).
+### Denominator Chart
-#### Unit Metric Denominator Chart
+Absolute cost chart for the **denominator** part of unit metric equation with **current** and **previous** period spend vs. time lines ($).
-Absolute cost chart for the Denominator part of Unit Metric with **current** and **previous** period spend vs. time lines (usage units).
+
diff --git a/fundamentals/unit-metrics/unit-metrics-library.md b/fundamentals/unit-metrics/unit-metrics-library.md
index 32c5b10..2a2da00 100644
--- a/fundamentals/unit-metrics/unit-metrics-library.md
+++ b/fundamentals/unit-metrics/unit-metrics-library.md
@@ -1,5 +1,15 @@
+---
+description: App Section
+---
+
# Unit Metrics Library
-**Unit Metrics Library** is the section of the app where you can see all the saved [unit-metric.md](unit-metric.md "mention") listed: both custom and predefined ones. It is a convenient entry point into cost efficiency analysis.
+**Unit Metrics Library** is the section of the app where you can see all the saved [unit-metric.md](key-concepts/unit-metric.md "mention") listed: both custom and predefined ones. It is a convenient entry point into cost efficiency analysis.
+
+
+
+There are two types of metics in the Library:
-.png>)
+* **Base** metrics are predefined by Cloudthread and are available after onboarding and data refresh
+* **Custom** metrics are defined by Cloudthread users through Create New Metric form and [unit-metrics-lab.md](unit-metrics-lab.md "mention") filtering and saving functionality
+ * See [creating-custom-unit-metrics.md](../../guides/monitoring-cloud-costs/creating-custom-unit-metrics.md "mention") for instructions
diff --git a/guides/connecting-aws-account.md b/guides/connecting-aws-account.md
deleted file mode 100644
index 9b2979e..0000000
--- a/guides/connecting-aws-account.md
+++ /dev/null
@@ -1,96 +0,0 @@
-# Connecting AWS Account
-
-Connecting AWS account is an **essential** part of Cloudthread onboarding process and the most fundamental part of the setup. You cannot skip this step – your organization's AWS billing and usage data is essential for the platform to deliver value, i.e. help you to increase efficiency of your cloud spend.
-
-## Cloudthread AWS access
-
-{% hint style="success" %}
-We are very careful with the access to your AWS environment, you can always see and adjust the policy templates we use in your accounts. Our policies are **read-only**, except for the billing S3 bucket we setup for you with your permission.
-
-[Cloudthread Policy](http://s3.us-west-2.amazonaws.com/cloudthread-cfn-resources/stacks/VLiZS1awYio9Hlp2afzh1QKEG4HOV4nAPEEzC5ckHDQ.yaml)
-{% endhint %}
-
-Cloudthread is using a delegated access role to read data from your account into the application This role has read access only to the resources necessary for generating the insights – AWS cost and usage data. This includes but not limited to:
-
-* [AWS Cost and Usage Report](https://aws.amazon.com/aws-cost-management/aws-cost-and-usage-reporting/) (CUR)
-* [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) API
-* [CloudWatch](https://aws.amazon.com/cloudwatch/) metrics
-* [AWS Simple Storage](https://aws.amazon.com/s3) (S3)
- * To read saved CUR files
-
-{% hint style="info" %}
-In more detail, Cloudthread needs roughly 5 sets of permissions / actions:
-
-1. CUR bucket creation, with complete access to this bucket (and only this bucket). This allows us to maintain the bucket policy overtime for any AWS changes that are required to maintain the CUR connection, and read CUR data.
-2. Listing organization root ids to power StackSet functionality so that's it's easy to integrate many sub accounts to power unit metics
-3. Cloudwatch read access to list metrics and collect Cloudwatch data
-4. Cost Explorer complete access to power the first 24 hours of the tool and trusted advisor maintenance
-5. CUR report complete access to create a cur report and help maintain existing ones
-{% endhint %}
-
-{% hint style="warning" %}
-Before connecting your account to Cloudthread we recommend you make sure [AWS Organizations with consolidated billing](https://aws.amazon.com/organizations/) are **enabled** in your AWS environment.
-{% endhint %}
-
-{% hint style="success" %}
-Cloudthread is using the most granular version of [AWS Cost and Usage Report](https://aws.amazon.com/aws-cost-management/aws-cost-and-usage-reporting/) **(CUR)** to deliver cost insights. Unlike with most other cloud cost management solutions, with Cloudthread you do not need to set it up yourself, our onboarding process takes care of it.
-
-_If you have a version of CUR already enabled in your account, Cloudthread can work with it as well._
-{% endhint %}
-
-## Connecting Cloudthread via CF Stack
-
-{% hint style="info" %}
-Cloudthread is using [**AWS CloudFormation**](https://aws.amazon.com/cloudformation/) **(CF)** **service** to enable fast and reliable integration. You control every part of this setup process and have full visibility into actions CF is performing with your AWS environment. At any point in time you can disconnect your account from Settings page in Cloudthread app.
-{% endhint %}
-
-### 1. Create and confirm Cloudthread account
-
-After your account is [created](app.cloudthread.io/sign-up/) and confirmed via email, you'll be prompted to "_Connect Cloudthread via CF Stack_".
-
-
-
-### 2. Redirect to AWS
-
-Pressing "_Connect Cloudthread via CF Stack_" will automatically **redirect** you to your AWS console, and **pre-populate** a CF Stack with Cloudthread's required access permissions.
-
-{% hint style="warning" %}
-* Make sure you are in the right AWS account.
-* We recommend to start with AWS management account.
-{% endhint %}
-
-### 3. Review CF stack and confirm creation
-
-
-
-{% hint style="warning" %}
-Make sure to check mark _"Acknowlegde that CloudFormation might create IAM resources"_
-{% endhint %}
-
-{% hint style="danger" %}
-**Note:** In order for Cloudthread to work, [Cost and Usage Report](https://docs.aws.amazon.com/cur/latest/userguide/what-is-cur.html) (CUR) file needs to be set up in **us-east-1**. Our CloudFormation stack has it preset, but if you change the region the stack won't work.
-{% endhint %}
-
-Once you initiate CF stack creation, it will take up to an hour to setup the required resources and policies for Cloudthred to generate initial insights. Your AWS console will show something like this:
-
-
-
-### 4. Come back to Cloudthread App
-
-Once the initial setup is complete, you will be able to see first cost insights in the app.
-
-
-
-{% hint style="info" %}
-#### **"Initial" cost insights**
-
-Cloudthread is using [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) API service to supply cost insights while more detailed AWS Cost and Usage Report (CUR) is being created (which can take up to 48 hours).
-
-_This means that you'll have high level cost analytics available through the Cost Explorer API immediately when you login and that more granular resource level data will only be available when CUR data is ready._
-{% endhint %}
-
-{% hint style="warning" %}
-Once the CUR file is ready Cloudthread will notify you, and you will be able to see deeper insights on the platform.
-
-_Often, when CUR file is created it does not have all the historical data – your AWS support must be contacted to backfill it._
-{% endhint %}
diff --git a/guides/creating-custom-cost-views.md b/guides/creating-custom-cost-views.md
deleted file mode 100644
index 99c1179..0000000
--- a/guides/creating-custom-cost-views.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Creating custom Cost Views
-
-Once your AWS account is connected, Cloudthread is ready to serve you cost insights. You might want to start with exploring the absolute spend your environment has generated, and create custom [cost-view.md](../fundamentals/cost-transparency/cost-view.md "mention") using our [cost-transparency](../fundamentals/cost-transparency/ "mention") feature.
-
-## What do I need it for?
-
-{% hint style="info" %}
-Creating custom [cost-view.md](../fundamentals/cost-transparency/cost-view.md "mention") can help you to:
-
-* Find out answers to the questions like "How much did my **team** spend in total on **EC2** (S3, RDS, etc.) last **week** (month, yers, etc.), and how is this spend distributed across AWS **regions** (accounts, operations, etc.)?"
-* See the **trends** for your absolute cloud spend
-* See the breakdown of your costs by various dimensions to understand top spending categories
-* [drill-down.md](../fundamentals/drill-down.md "mention") from the Cost View into cloud spend to identify root cause of the spike in costs you see
- * Check out [performing-root-cause-analysis.md](performing-root-cause-analysis.md "mention") guide to learn more
-* Set up reports and alerts for the Cost View, so that you can be notified on important changes in your cloud spend
- * Check out [setting-up-alerts-and-reports.md](setting-up-alerts-and-reports.md "mention") guide to learn more
-{% endhint %}
-
-## Detailed instructions
-
-1. Choose Costs Transparency section in the menu to the right, then choose Cost Overview item
- * You will see a page with Total Cost View – a default Cost View representing all the spend from added accounts, will no filters applied
-2. Adjust Date filter at the top-right of the window as needed
- * By default the dates are shown for the last 7 days
-3. Open Filter pane at the top-right of the window and add necessary filters
- * This is where you introduce all necessary conditions for absolute cloud spend filtering
- * The filter allows for 4 dimensions: Account, Region, Service and Tag
- * You can add filter conditions in buckets, where each bucket represents AND condition for lines of different dimensions inside, and separate buckets are connected by OR condition
- * Click "Apply" button to apply the filters
-4. Check the charts if they represent the data you were looking for
- * Top chart shows total filtered spend for chosen period and the period of same size right before
- * Bottom chart is a "breakdown", it shows same spend by one of the four dimensions: Account, Region, Service and Operation
-5. Click "Save as New" at top pane right near the default Cost View name
-6. Put a descriptive name and click save
-7. See your saved Cost View in the Library
-
-
-
diff --git a/guides/creating-custom-unit-metrics.md b/guides/creating-custom-unit-metrics.md
deleted file mode 100644
index e3a4ad7..0000000
--- a/guides/creating-custom-unit-metrics.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Creating custom Unit Metrics
-
-[unit-metrics](../fundamentals/unit-metrics/ "mention") is the major feature of Cloudthread aimed at helping you to figure out how much value you are getting from your cloud. It is fully available once the full data setup is done, which can take up to **48 hours** from the AWS account connection.
-
-## What do I need it for?
-
-{% hint style="info" %}
-Creating custom [unit-metric.md](../fundamentals/unit-metrics/unit-metric.md "mention") can help you to:
-
-* Find out answers to the questions like "How much does my **team** really pays AWS for **every** Lambda **invocation** in **us-east-1** region?"
-* See the **trends** for your unit metric
-* Set up reports and alerts for the Unit Metric, so that you can be notified on important changes in your cloud cost efficiency
- * Check out [setting-up-alerts-and-reports.md](setting-up-alerts-and-reports.md "mention") guide to learn more
-{% endhint %}
-
-## Detailed instructions
-
-1. Choose Unit Metrics section in the menu to the right, then choose Unit Metrics Overview item
- * You will see a page with charts for a default metric prebuilt for you by Cloudthread
-2. Adjust Date filter at the top-right of the window as needed
- * By default the dates are shown for the last 7 days
-3. Click "Create New Metric" button at the top-right of the window and add necessary filters for Numerator (cost) and Denominator (CloudWatch units) in the constructor section
- * This is where you introduce all necessary conditions for custom unit metric dimensions
-4. Input constructor conditions for Numerator and Denominator
-5. Put a descriptive name and click save
-6. See your saved Unit Metric in the Library
-
-
-
diff --git a/guides/managing-account-and-team.md b/guides/managing-account-and-team.md
deleted file mode 100644
index 9c6428a..0000000
--- a/guides/managing-account-and-team.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# Adding new Users
-
-As you did the initial setup getting first [cost-view.md](../fundamentals/cost-transparency/cost-view.md "mention") and [unit-metric.md](../fundamentals/unit-metrics/unit-metric.md "mention") defined, you might want to invite more users to Cloudthread, so that they can see insights and create their own views and metrics o track.
-
-{% hint style="warning" %}
-You have be an **Admin** in order to invite new team members. See [account-and-team-management.md](../fundamentals/account-and-team-management.md "mention") for more details on roles and permissions.
-{% endhint %}
-
-## What do I need it for?
-
-{% hint style="info" %}
-Adding new users to the platform will enable the following:
-
-* More **people** in you organization will be able to see cost **insights** in a convenient form.
-* Engineers will be able to dig into the costs and unit metrics to understand how their workflows impact cloud spend and efficiency – this can enable **engineering accountability.**
-* More people will be able to create [cost-view.md](../fundamentals/cost-transparency/cost-view.md "mention") and [unit-metric.md](../fundamentals/unit-metrics/unit-metric.md "mention") so that company's library has wider range of insights.
-{% endhint %}
-
-## Detailed instructions
-
-1. Go to **Account** section from the right menu pane
-2. Choose **Team Management** tab
-3. Fill in the user invite form under the list of users
- * All you need is User Name and e-mail
-4. Push "Add New User"
-5. Invited user should receive an e-mail and be able to sign up to Cloudthread
-
-{% hint style="success" %}
-Cloudthread's [pricing](https://www.cloudthread.io/pricing) is **not based on number of users** – we do not want to create wrong incentives and discourage people in your organization to use the app and see valuable cloud efficiency insights.
-{% endhint %}
-
-
diff --git a/guides/monitoring-cloud-costs/README.md b/guides/monitoring-cloud-costs/README.md
new file mode 100644
index 0000000..726f9f9
--- /dev/null
+++ b/guides/monitoring-cloud-costs/README.md
@@ -0,0 +1,2 @@
+# Monitoring Cloud Costs
+
diff --git a/guides/monitoring-cloud-costs/creating-custom-cost-views.md b/guides/monitoring-cloud-costs/creating-custom-cost-views.md
new file mode 100644
index 0000000..d147779
--- /dev/null
+++ b/guides/monitoring-cloud-costs/creating-custom-cost-views.md
@@ -0,0 +1,50 @@
+# Creating Cost Views
+
+Once your AWS accounts are **connected** (see [onboarding](../onboarding/ "mention")), Cloudthread is ready to serve you **cost insights**. You might want to start with exploring the absolute spend your environment has generated, and create custom [cost-view.md](../../fundamentals/cost-transparency/key-concepts/cost-view.md "mention") using our [cost-transparency](../../fundamentals/cost-transparency/ "mention") feature.
+
+## What do I need it for?
+
+{% hint style="info" %}
+Creating custom [cost-view.md](../../fundamentals/cost-transparency/key-concepts/cost-view.md "mention") can help you to:
+
+* Find out answers to the questions like "How much did my **team** spend in total on **EC2** (S3, RDS, etc.) last **week** (month, quarter, etc.), and how is this spend distributed across AWS **regions** (accounts, operations, etc.)?"
+* See the **trends** for your absolute cloud spend
+* See the spend by **Kubernetes** namespaces, clusters, pods, labels
+ * Check out [performing-k8s-cost-analysis.md](performing-k8s-cost-analysis.md "mention") guide to learn more
+* See the breakdown of your costs by various dimensions to understand top spending categories
+* [drill-down.md](../../fundamentals/cost-transparency/key-concepts/drill-down.md "mention") from the Cost View into cloud spend to identify root cause of the spike in costs you see
+ * Check out [performing-root-cause-analysis.md](performing-root-cause-analysis.md "mention") guide to learn more
+* See the **cost savings recommendations** for the current cost view through the [low-utilization-detection.md](../../fundamentals/cost-transparency/key-concepts/low-utilization-detection.md "mention") feature
+* Set up reports and alerts for the Cost View, so that you can be notified on important changes in your cloud spend
+ * Check out [setting-up-alerts-and-reports.md](setting-up-alerts-and-reports.md "mention") guide to learn more
+{% endhint %}
+
+## Detailed instructions
+
+1. Navigate to [costs-overview.md](../../fundamentals/cost-transparency/costs-overview.md "mention") section in [cost-transparency](../../fundamentals/cost-transparency/ "mention") space in the menu to the left:
+ * You can get there via several different paths:
+ * From the menu pane at the left
+ * From the [summary-dashboard.md](../../fundamentals/dashboards/summary-dashboard.md "mention") by clicking "Create New Cost View"
+ * From the [cost-view-library.md](../../fundamentals/cost-transparency/cost-view-library.md "mention") by clicking "Create New View"
+ * A good practice is to explore the Library if the view you want to create already exists
+ * You will see a page with Default View – a default Cost View representing **total spend** from integrated billing accounts, with **no** filters applied
+2. Adjust **Date** filter at the top-right of the window as needed
+ * By default the dates are shown for the last 7 days
+ * Date picker has the settings for both еру time window as well as data granularity, go to [#date-picker](../../fundamentals/cost-transparency/costs-overview.md#date-picker "mention") to learn more
+3. Open **Filter** pane at the top-right of the window and add necessary filters
+ * This is where you introduce all necessary conditions for absolute cloud spend filtering
+ * The filter allows for 10 dimensions:
+ * 6 for **AWS**: Account, Region, Service and Tag, Usage Type, Operation
+ * 4 for **Kubernetes**: Cluster, Namespace, Pod, Label (available only for Amazon EC2 service)
+ * You can add filter conditions in buckets, where each bucket represents AND condition for lines of different dimensions inside, and separate buckets are connected by OR condition
+ * [regular-expressions.md](../../fundamentals/cost-transparency/key-concepts/regular-expressions.md "mention") are allowed in filters
+ * More on filtering functionality in [#filter-pane](../../fundamentals/cost-transparency/costs-overview.md#filter-pane "mention") section
+ * Click "Apply" button to apply the filters
+4. Check the **charts** if they represent the data you were looking for
+ * Top chart shows total filtered spend for chosen period and the period of same size right before
+ * Bottom chart is a "breakdown", it shows same spend by one of the six dimensions: Account, Region, Service, Usage Type, Operation and Resource
+5. Click "Save as..." at top pane right near the default Cost View name
+6. Put a descriptive name and click save
+7. See your saved Cost View in the [cost-view-library.md](../../fundamentals/cost-transparency/cost-view-library.md "mention")
+
+
Creating custom Cost View
diff --git a/guides/monitoring-cloud-costs/creating-custom-dashboards.md b/guides/monitoring-cloud-costs/creating-custom-dashboards.md
new file mode 100644
index 0000000..8db98c0
--- /dev/null
+++ b/guides/monitoring-cloud-costs/creating-custom-dashboards.md
@@ -0,0 +1,34 @@
+# Creating Custom Dashboards
+
+Custom [dashboards](../../fundamentals/dashboards/ "mention") are a great way to flexibly visualize the data within the Cloudthread platform as well as to share it with stakeholders in a more controlled way.
+
+## What do I need it for?
+
+{% hint style="info" %}
+Creating custom [dashboards](../../fundamentals/dashboards/ "mention") can help you to:
+
+* **Get** all the relevant data into one place
+* **Build** the data story and share it with the stakeholders
+* **Restrict** **access** to data for certain users
+{% endhint %}
+
+## Detailed instructions
+
+1. Navigate to [dashboards-lab.md](../../fundamentals/dashboards/dashboards-lab.md "mention")section in [dashboards](../../fundamentals/dashboards/ "mention")space in the menu to the left:
+ * You can get there via several different paths:
+ * From the menu pane at the left
+ * From the [dashboards-library.md](../../fundamentals/dashboards/dashboards-library.md "mention") by clicking "Create New Dashboard"
+ * A good practice is to explore the Library if the dashboard you want to create already exists
+ * You will see a page with empty widget placeholders
+2. Place the widgets on the dashboard:
+ 1. Click Add Widget button
+ 2. Choose Widget Type
+ * Cost View or Unit Metric
+ 3. Choose data object to visualize
+ * Any saved Cost View or Unit Metric
+ 4. Choose **Duration**
+ * This is the number of time data points to show on chart
+ 5. Choose **Granularity**
+ * This is the granularity of data – day, week, month, quarter, year
+
+
Creating Custom Dashboards
diff --git a/guides/monitoring-cloud-costs/creating-custom-unit-metrics.md b/guides/monitoring-cloud-costs/creating-custom-unit-metrics.md
new file mode 100644
index 0000000..49b6b53
--- /dev/null
+++ b/guides/monitoring-cloud-costs/creating-custom-unit-metrics.md
@@ -0,0 +1,45 @@
+# Creating Unit Metrics
+
+[unit-metrics](../../fundamentals/unit-metrics/ "mention") is the major feature of Cloudthread aimed at helping you to figure out how much value you are getting from your cloud. It allows to construct unit metrics based on various sources of data, so that your teams can track them and focus on cost efficiency.
+
+{% hint style="warning" %}
+Unit metrics flow is available once the full data setup is done, which can take up to **48 hours** from the AWS account connection.
+{% endhint %}
+
+## What do I need it for?
+
+{% hint style="info" %}
+Creating custom [unit-metric.md](../../fundamentals/unit-metrics/key-concepts/unit-metric.md "mention") can help you to:
+
+* Find out answers to the questions like "How much does my **team** really pays AWS for **every** Lambda **invocation** in **us-east-1** region?"
+* See the **trends** for your unit metric
+* Set up reports and alerts for the Unit Metric, so that you can be notified on important changes in your cloud cost efficiency
+ * Check out [setting-up-alerts-and-reports.md](setting-up-alerts-and-reports.md "mention") guide to learn more
+{% endhint %}
+
+## Detailed instructions
+
+1. Navigate to [unit-metrics-lab.md](../../fundamentals/unit-metrics/unit-metrics-lab.md "mention") section in [unit-metrics](../../fundamentals/unit-metrics/ "mention") space in the menu to the left:
+ * You can get there via several different paths:
+ * From the menu pane at the left
+ * From the [summary-dashboard.md](../../fundamentals/dashboards/summary-dashboard.md "mention") by clicking "Create New Unit Metric"
+ * From the [unit-metrics-library.md](../../fundamentals/unit-metrics/unit-metrics-library.md "mention") by clicking "Create New Metric"
+ * A good practice is to explore the Library if the metric you want to create already exists
+ * You will see a page with empty chart placeholders (Cost per Unit, Numerator, Denominator) as well as the settings pane to the right
+ * Find more about the settings pane: [#settings-pane](../../fundamentals/unit-metrics/unit-metrics-lab.md#settings-pane "mention")
+2. Set the **Numerator** Source and Filters:
+ * CUR source – billing data from Cost Usage Report ($), default option
+ * Service, Usage Type and Operation filters available
+ * CloudWatch source – monitoring data, requires [Broken link](broken-reference "mention")
+ * Namespace, Account, Region and Tag filters available
+ * Custom Data source – any data pushed to Cloudthread through [custom-data-api.md](../../fundamentals/custom-data-api.md "mention")
+ * Stream Token and Dimension filters available
+ * **Note:** Leaving filters blank sets numerator to the default value (e.g.: Total Spend for CUR option)
+3. Set the **Denominator** Source and Filters:
+ * This is a **required** step – denominator data is essential for the charts to show data
+ * The sources and dimensions available are similar to the ones in Numerator
+4. Check the charts to see the trend and accuracy
+5. Click "Save as..." at the left top corner of the screen
+6. See your saved Unit Metric in the [unit-metrics-library.md](../../fundamentals/unit-metrics/unit-metrics-library.md "mention")
+
+
Creating custom Unit Metric
diff --git a/guides/monitoring-cloud-costs/ingesting-custom-data-1.md b/guides/monitoring-cloud-costs/ingesting-custom-data-1.md
new file mode 100644
index 0000000..280a421
--- /dev/null
+++ b/guides/monitoring-cloud-costs/ingesting-custom-data-1.md
@@ -0,0 +1,25 @@
+# Setting Up Events Overlay
+
+Cloudthread allows to display custom events on the [#absolute-cost-chart](../../fundamentals/cost-transparency/costs-overview.md#absolute-cost-chart "mention") in [costs-overview.md](../../fundamentals/cost-transparency/costs-overview.md "mention") section. This feature is called [events-overlay.md](../../fundamentals/cost-transparency/key-concepts/events-overlay.md "mention"). It serves as a convenient way to track cost fluctuations and perform root cause analysis.
+
+## What do I need it for?
+
+{% hint style="info" %}
+Adding an Events Overlay to your absolute cloud cost chart allows to:
+
+* **See** what event (deploy, incident, launch, marketing campaign, etc.) caused a cloud cost spike (or dip) on one chart, without the need to go drill into the data
+* **Track** historical events that affected the cloud costs and use them in presentations to the leadership
+{% endhint %}
+
+## Detailed instructions
+
+[events-overlay.md](../../fundamentals/cost-transparency/key-concepts/events-overlay.md "mention") relies on [custom-data-api.md](../../fundamentals/custom-data-api.md "mention") for the events data upload. Below are the instructions:
+
+1. Please, refer to the [API](http://127.0.0.1:5000/o/TmVItW5TwUC23RxcuDg9/s/KuhDuXL0YPX22VMOHZWV/ "mention") documentation for detailed instructions on how to setup a data stream
+2. Once you have set up the data stream, you will be able to use the **events data stream objects**
+3. Go to the [costs-overview.md](../../fundamentals/cost-transparency/costs-overview.md "mention") and click on the "Events" checkbox at the top of [#absolute-cost-chart](../../fundamentals/cost-transparency/costs-overview.md#absolute-cost-chart "mention")
+4. See the events presented in form of blue vertical lines on the chart
+5. Hover over to the line to see what type of event it is
+6. refer to the table below the chart to learn more about the event
+
+
Setting Up Events Overlay
diff --git a/guides/monitoring-cloud-costs/ingesting-custom-data.md b/guides/monitoring-cloud-costs/ingesting-custom-data.md
new file mode 100644
index 0000000..c5bb093
--- /dev/null
+++ b/guides/monitoring-cloud-costs/ingesting-custom-data.md
@@ -0,0 +1,17 @@
+# Ingesting Custom Data
+
+Cloudthread allows to ingest **custom data streams** through the [custom-data-api.md](../../fundamentals/custom-data-api.md "mention"). Tis feature expands the analytical capabilities of the platform beyond the cloud data and unlocks limitless options for metric creation.
+
+## What do I need it for?
+
+{% hint style="info" %}
+Adding a custom data integration allows to:
+
+* **Create** _business_ unit metrics based on the data from you organization's data warehouse, such as Customers, Orders, Reservations, etc.
+* **Create** _engineering_ unit metrics based on the data from you organization's monitoring systems that are not supported by Cloudthread natively
+{% endhint %}
+
+## Detailed instructions
+
+1. Please, refer to the [API](http://127.0.0.1:5000/o/TmVItW5TwUC23RxcuDg9/s/KuhDuXL0YPX22VMOHZWV/ "mention") documentation for detailed instructions on how to setup a data stream
+2. Once you have set up the data stream, you will be able to see the **custom data stream token** in the [#settings-pane](../../fundamentals/unit-metrics/unit-metrics-lab.md#settings-pane "mention") of [unit-metrics-lab.md](../../fundamentals/unit-metrics/unit-metrics-lab.md "mention") (under Custom data source)
diff --git a/guides/monitoring-cloud-costs/managing-account-and-team.md b/guides/monitoring-cloud-costs/managing-account-and-team.md
new file mode 100644
index 0000000..0fa1c61
--- /dev/null
+++ b/guides/monitoring-cloud-costs/managing-account-and-team.md
@@ -0,0 +1,31 @@
+# Setting Budgets
+
+As you are getting [cost-view.md](../../fundamentals/cost-transparency/key-concepts/cost-view.md "mention") created for various stakeholders (see [creating-custom-cost-views.md](creating-custom-cost-views.md "mention") guide for how-to) it is beneficial to have [budgets.md](../../fundamentals/cost-transparency/key-concepts/budgets.md "mention") visible in case you are having such a process in your FinOps practice.
+
+Cloudthread platform allows setting one budget per cost view and displaying it on the [#absolute-cost-chart](../../fundamentals/cost-transparency/costs-overview.md#absolute-cost-chart "mention").
+
+## What do I need it for?
+
+{% hint style="info" %}
+Adding a budget to a Cost View allows to:
+
+* **Inform** stakeholders on the total cloud spend budget they have to fit in
+* **Notify** cloud bill owners as well as users when the budget has been broken
+* **Compare** forecasted spend to the budget to plan for a preemptive corrective action
+{% endhint %}
+
+## Detailed instructions
+
+1. Go to [cost-view-library.md](../../fundamentals/cost-transparency/cost-view-library.md "mention") section in [cost-transparency](../../fundamentals/cost-transparency/ "mention") space in the menu to the left:
+ * You can get there via several different paths:
+ * From the menu pane at the left
+ * From the [summary-dashboard.md](../../fundamentals/dashboards/summary-dashboard.md "mention") by clicking "View All" in the Cost Views section
+ * From the [costs-overview.md](../../fundamentals/cost-transparency/costs-overview.md "mention") section by clicking "Cost Views" at the top of the screen
+2. Choose the saved Cost View you want to assign budget to, and click into it, you will get to [costs-overview.md](../../fundamentals/cost-transparency/costs-overview.md "mention") with you saved filters set
+3. Navigate to the [#absolute-cost-chart](../../fundamentals/cost-transparency/costs-overview.md#absolute-cost-chart "mention") (the first one on the page) and click "Budget" button (with "+") at the right top corner of the chart
+4. Enter the desired budget amount in the dialogue window
+5. Click "Monthly Budget" button (with an eye icon) that appeared in place of the "Budget" button you used in Step 3
+ * Alternatively, check "Cumulative mode" at the top of the chart
+6. See the chart change to Cumulative mode for the current moth and the budget dotted line appear
+
+
diff --git a/guides/monitoring-cloud-costs/performing-k8s-cost-analysis.md b/guides/monitoring-cloud-costs/performing-k8s-cost-analysis.md
new file mode 100644
index 0000000..0ecf524
--- /dev/null
+++ b/guides/monitoring-cloud-costs/performing-k8s-cost-analysis.md
@@ -0,0 +1,27 @@
+# Performing K8s Cost Analysis
+
+If you are using Kubernetes (K8s) on top of your AWS compute resources, Cloudthread's [kubernetes-dimensions.md](../../fundamentals/cost-transparency/key-concepts/kubernetes-dimensions.md "mention") feature can help you with the container cost allocation that is essential for accurate cloud spend monitoring.
+
+## What do I need it for?
+
+{% hint style="info" %}
+Using [kubernetes-dimensions.md](../../fundamentals/cost-transparency/key-concepts/kubernetes-dimensions.md "mention") feature can help you to:
+
+* Find out answers to the questions like "How much my team's **container** workloads cost?"
+* Filter absolute AWS costs by Kubernetes **Cluster, Namespace, Pod and Label**
+{% endhint %}
+
+## Detailed instructions
+
+1. Choose [costs-overview.md](../../fundamentals/cost-transparency/costs-overview.md "mention") menu item under [cost-transparency](../../fundamentals/cost-transparency/ "mention") section in the menu to the left
+ * You will see a page with Default View – a default Cost View representing **total spend** from added accounts, with **no** filters applied
+ * If you want to work with a a custom filtered view that was saved earlier or with the base view (predefined cost category), choose [cost-view-library.md](../../fundamentals/cost-transparency/cost-view-library.md "mention") or see[creating-custom-cost-views.md](creating-custom-cost-views.md "mention") for guidance
+2. Open **Filter** pane at the top-right of the window and add necessary K8s filters
+ * The filter allows for 4 **Kubernetes dimensions**: Cluster, Namespace, Pod, Label
+ * Choosing K8s dimensions automatically applies EC2 Service filter
+ * 
+ * You can add filter conditions in buckets, where each bucket represents AND condition for lines of different dimensions inside, and separate buckets are connected by OR condition
+ * Click "Apply" button to apply the filters
+3. Check the **charts** if they represent the data you were looking for
+ * Top chart shows total filtered spend for chosen period and the period of same size right before
+ * Bottom chart is a "breakdown", it shows same spend by one of the six dimensions: Account, Region, Service, Usage Type, Operation and Resource
diff --git a/guides/monitoring-cloud-costs/performing-root-cause-analysis.md b/guides/monitoring-cloud-costs/performing-root-cause-analysis.md
new file mode 100644
index 0000000..91722fb
--- /dev/null
+++ b/guides/monitoring-cloud-costs/performing-root-cause-analysis.md
@@ -0,0 +1,34 @@
+# Performing Root Cause Analysis
+
+Root Cause Analysis (RCA) is an important part of dealing with cloud costs: identifying the reason of cost spikes efficiently is essential. Cloudthread's [drill-down.md](../../fundamentals/cost-transparency/key-concepts/drill-down.md "mention") feature empowers you to do it with the depth of AWS resource level.
+
+## What do I need it for?
+
+{% hint style="info" %}
+Using [drill-down.md](../../fundamentals/cost-transparency/key-concepts/drill-down.md "mention") feature for RCA can help you to:
+
+* Find out answers to the questions like "Which AWS **resource** is behind the increase in cost of my **team's** cloud infrastructure?"
+* See the **breakdown** of specific parts of you spend by Account, Region, Service, Usage Type, Operation and Resource.
+{% endhint %}
+
+## Detailed instructions
+
+1. Choose [costs-overview.md](../../fundamentals/cost-transparency/costs-overview.md "mention") menu item under [cost-transparency](../../fundamentals/cost-transparency/ "mention") section in the menu to the left
+ * You will see a page with Default View – a default Cost View representing **total spend** from added accounts, with **no** filters applied
+ * If you want to work with a a custom filtered view that was saved earlier or with the base view (predefined cost category), choose [cost-view-library.md](../../fundamentals/cost-transparency/cost-view-library.md "mention") or see[creating-custom-cost-views.md](creating-custom-cost-views.md "mention") for guidance
+2. Move to the second chart on page (**Breakdown Chart**) and navigate to the table below the chart
+ * The table shows the items visualized on breakdown chart
+3. Hover over the table row you want to drill-down into and click the drill-down button to the right, or, alternatively, click on the data point on the cart you want to drill-down into
+ * You will see table and chart change to show the items on the next level of drill-down contributing to the item you chose
+ * You will see the drill-down pane open to the right with convenient data on the state of drill-down and the controls to change any level or dimension
+ * The drill-down level sequence we currently support: Account -> Region -> Service -> Usage Type -> Operation -> Resource
+4. Once you are in drill-down mode, you can see the level you are at on the control line above the table
+ * You can change levels from the control line as you go
+ * Going level back is also done through control line by deleting the latest level
+5. Drill-down while you see the root cause of the cost spike
+
+
+
+{% hint style="success" %}
+For tag-based analysis use [tag-analyzer.md](../../fundamentals/cost-transparency/key-concepts/tag-analyzer.md "mention")
+{% endhint %}
diff --git a/guides/monitoring-cloud-costs/setting-up-alerts-and-reports.md b/guides/monitoring-cloud-costs/setting-up-alerts-and-reports.md
new file mode 100644
index 0000000..636f206
--- /dev/null
+++ b/guides/monitoring-cloud-costs/setting-up-alerts-and-reports.md
@@ -0,0 +1,103 @@
+# Setting Up Alerts and Reports
+
+Once you get familiar with [creating-custom-cost-views.md](creating-custom-cost-views.md "mention") and [creating-custom-unit-metrics.md](creating-custom-unit-metrics.md "mention"), you might want to setup [notifications](../../fundamentals/notifications/ "mention") for the views so that important insights are not missed by you and your team.
+
+Cloudthread has two types of notifications:
+
+* [alerts.md](../../fundamentals/notifications/alerts.md "mention") – short notifications sent on certain event (like threshold break)
+* [reports.md](../../fundamentals/notifications/reports.md "mention") – detailed notifications sent on schedule
+
+{% hint style="success" %}
+All notifications can be delivered through **e-mail** and **Slack** (see [#slack-integration](../../fundamentals/settings/slack-integration.md#slack-integration "mention") for Slack App setup instructions).
+{% endhint %}
+
+## What do I need it for?
+
+{% hint style="info" %}
+Using [alerts.md](../../fundamentals/notifications/alerts.md "mention") and [reports.md](../../fundamentals/notifications/reports.md "mention") will help you to:
+
+* Get **notified** when your [cost-view.md](../../fundamentals/cost-transparency/key-concepts/cost-view.md "mention") or [unit-metric.md](../../fundamentals/unit-metrics/key-concepts/unit-metric.md "mention") break absolute or relative threshold you defined
+* Receive **detailed** insights on cloud spend relevant to you every week/month/quarter
+* **Subscribe** team members to important notifications so that they receive important information on their cloud costs in time
+{% endhint %}
+
+## Detailed instructions
+
+### Alerts
+
+{% hint style="info" %}
+See [alerts.md](../../fundamentals/notifications/alerts.md "mention") for alert examples and details on alert types and cadence.
+{% endhint %}
+
+1. Choose **Notification Center** menu item at the bottom part of the menu to the left
+2. Navigate to **Alerts** section at the top of the screen, you will see the table listing all the alerts set up in your Cloudthread account
+
+ 
+3. Click "Create New Alert" button at the top of the table, you will see the the form with alert settings
+
+ .png>)
+4. Choose [cost-view.md](../../fundamentals/cost-transparency/key-concepts/cost-view.md "mention") or [unit-metric.md](../../fundamentals/unit-metrics/key-concepts/unit-metric.md "mention") that you want the alert to be applied to from the list
+5. Specify the alert type based on the threshold type you want to apply – Absolute or Relative
+ * **Absolute** thresholds are associated with a specific, absolute number (e.g. alert when costs go above $10)
+ * **Relative** thresholds are associated with a percentage increase Week over Week (e.g. alert when costs increase by more than 5% compared to last week)
+6. Add e-mail addresses for alert recipients
+ * Multiple e-mail addresses are allowed
+ * List of addresses should be comma separated
+ * Note: any emails will work, they don't need to have an associated Cloudthread user
+7. Choose Slack channels the alert notifications should be sent to
+ * You should have Slack connected to Cloudthread, see [#slack-integration](../../fundamentals/settings/slack-integration.md#slack-integration "mention") for instructions
+ * Multiple Slack channels are allowed
+8. Input the alert name
+9. Click "Save Alert"
+10. Your alert will appear in the saved alerts table with Active switch on, i.e. the alert is active and will be fired to specified channels once the threshold is broken
+
+
+
+### Reports
+
+{% hint style="info" %}
+See [reports.md](../../fundamentals/notifications/reports.md "mention") for report examples and details on report types and cadence.
+{% endhint %}
+
+1. Choose **Notification Center** menu item at the bottom part of the menu to the left
+2. Navigate to **Reports** section at the top of the screen, you will see the table listing all the reports set up in your Cloudthread account
+
+ .png>)
+3. Click "Create New Report" button at the top of the table, you will see the the form with report settings
+
+ .png>)
+4. In the **Filtering** section of the form choose one of your custom [cost-view.md](../../fundamentals/cost-transparency/key-concepts/cost-view.md "mention") that you want the report to be based on
+ * All data in the report will be filtered in accordance with the chosen Cost View
+ * If you chose no view, non-filtered (total) cost will be reported
+5. In the **Detailed Insights** section of the form specify [unit-metric.md](../../fundamentals/unit-metrics/key-concepts/unit-metric.md "mention") and/or **Tags** that you want to be added to the report – insights on these Unit Metrics and tags will be included into the special sections of the report
+ * Max 5 Unit Metrics can be added
+ * Max 3 Tags can be added
+6. In the **Movers and Shakers** section of the form specify settings for the corresponding report section – a summary of the biggest spend changes within your environment
+ * **Minimum spend threshold** – you don't want cost movements below this absolute spend number to be included in reports or be flagged as a daily mover and shaker
+ * e.g. if Absolute Spend Threshold is $10 and your Lambda pricing goes up by 500% but still only costs $9, Lambda won't show up in the reports
+ * **Minimum spend change** – only changes in spend exceeding these relative or absolute thresholds will be added to the reports
+ * **Absolute** thresholds are associated with a specific, absolute number
+ * You don't want cost movements below this absolute change to be included in reports or be flagged as a daily mover and shaker
+ * e.g. if Absolute Change Threshold is $50 and your Lambda pricing goes up from $10,020 last week to $10,050 this week, Lambda has increased by only $30 and won't show up as a Top Spender and won't show up in daily movers and shakers
+ * **Relative** thresholds are associated with a percentage increase Week over Week
+ * You don't want cost movements below this relative change to be included in reports or be flagged as a daily mover and shaker
+ * e.g. if Relative Change Threshold is 10% and your Lambda pricing goes up from $100 last week to $109 this week, Lambda has increased by only 9% and won't show up as a Top Spender and won't show up in daily movers and shakers
+ * **Daily Movers and Shakers** – this checkbox introduces a special daily report that is sent only if one of the thresholds above is broken
+ * This is similar to Alert behavior, but includes more detailed information on spend changes
+ * If checked, the report will be send on the threshold break event, outside of any previously set schedule
+7. Add e-mail addresses for report recipients
+ * Multiple e-mail addresses are allowed
+ * List of addresses should be comma separated
+ * Note: any emails will work, they don't need to have an associated Cloudthread user
+8. Choose Slack channels the alert notifications should be sent to
+ * You should have Slack connected to Cloudthread, see [Broken link](broken-reference "mention") for instructions
+ * Multiple Slack channels are allowed
+9. Input the report name
+10. Click "Save Report"
+11. Your report will appear in the saved reports table with Active switch on, i.e. the report is active and will be delivered to specified channels on schedule or daily in case **Daily Movers and Shakers checkbox was checked** and the threshold is broken
+
+{% hint style="success" %}
+By default a report for **Total Cost** view is created as part of **onboarding** process. After you set up an account, you will be receiving a weekly report to your inbox, no action needed.
+{% endhint %}
+
+
diff --git a/guides/monitoring-cloud-costs/setting-up-cost-allocation-rules.md b/guides/monitoring-cloud-costs/setting-up-cost-allocation-rules.md
new file mode 100644
index 0000000..028c16e
--- /dev/null
+++ b/guides/monitoring-cloud-costs/setting-up-cost-allocation-rules.md
@@ -0,0 +1,25 @@
+# Setting Up Cost Allocation Rules
+
+Cloudthread allows to create [cost-allocation-rules.md](../../fundamentals/cost-transparency/key-concepts/cost-allocation-rules.md "mention"): custom **tags** used to split costs based on certain dimensions. based on them. This is needed for slicing the cost data and allocating the spend to the dimensions that are not provided by cloud data.
+
+## What do I need it for?
+
+{% hint style="info" %}
+Adding a Tag Catalog entry allows to:
+
+* **Slicing** the cost data
+* **Allocating** the spend to [teams.md](../../fundamentals/settings/teams.md "mention")
+{% endhint %}
+
+## Detailed instructions
+
+1. Navigate to [rule-editor.md](../../fundamentals/cost-transparency/rule-editor.md "mention") section in the menu to the left
+2. Choose costs source from [#costs-source-dropdown](../../fundamentals/cost-transparency/rule-editor.md#costs-source-dropdown "mention")
+3. Select the first Split Dimension from [#split-dimension-dropdown](../../fundamentals/cost-transparency/rule-editor.md#split-dimension-dropdown "mention")
+4. Set the first value for the split dimension
+ * By default the two-way split is created: the dimension with the value you choose (e.g. Region = us-east-1) and Other
+5. Add another value for the split dimension by clicking "Add child" and choosing the value
+ * Other split value stays
+6. Add Rule Tags by clicking "Add rule tags" and defining new tag key and tag value
+ * This is used for Custom Rule Tags definition – these tags can be used in filters across [cost-transparency](../../fundamentals/cost-transparency/ "mention") features
+7. Add another split to any of the values of the split dimension, repeat 4-6
diff --git a/guides/onboarding/README.md b/guides/onboarding/README.md
new file mode 100644
index 0000000..24d70e0
--- /dev/null
+++ b/guides/onboarding/README.md
@@ -0,0 +1,35 @@
+# Onboarding
+
+Onboarding to Cloudthread platform is a streamlined process, consisting of 2 steps: setting up your account and adding permissions for your cloud environments.
+
+{% hint style="info" %}
+Cloudthread is supporting only **AWS** at the moment. **Google Cloud** integration is on the way. If you are using other cloud providers, please let us know [here](https://www.cloudthread.io/contact-us).
+{% endhint %}
+
+## 1. Create and confirm Cloudthread account
+
+After your account is [created](https://app.core.cloudthread.io/sign-up/) and confirmed via email, you'll be prompted to get connected to your cloud environment. The account creation process is quite standard and requires you to sign-up with email, Google or GitHub.
+
+
+
+
+
+
+
+## 2. Connect your cloud environments
+
+Connecting cloud environments is essential for Cloudthread to deliver insights and automation. Further in this guide you will find detailed instructions on how to set up AWS and GCP connections.
+
+
+
+### AWS
+
+{% content-ref url="connecting-aws-account.md" %}
+[connecting-aws-account.md](connecting-aws-account.md)
+{% endcontent-ref %}
+
+### GCP
+
+{% content-ref url="connecting-gcp-billing-account.md" %}
+[connecting-gcp-billing-account.md](connecting-gcp-billing-account.md)
+{% endcontent-ref %}
diff --git a/guides/onboarding/connecting-aws-account.md b/guides/onboarding/connecting-aws-account.md
new file mode 100644
index 0000000..61592be
--- /dev/null
+++ b/guides/onboarding/connecting-aws-account.md
@@ -0,0 +1,277 @@
+# Connecting AWS Management Account
+
+Connecting cloud account is an **essential** part of Cloudthread onboarding process and the most fundamental part of the setup. You cannot skip this step – your organization's cloud **savings, billing, and usage data** is essential for the platform to deliver value, i.e. help you to increase efficiency of your cloud spend.
+
+This is the guide for the **initial** data access setup, which is aimed at **AWS** **Management** **Account** (see [AWS Consolidate Billing](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/consolidated-billing.html) for more information). This setup fully covers:
+
+* **Billing data (CUR)**
+* **Savings Opportunity data**
+
+## Cloudthread AWS access
+
+{% hint style="success" %}
+We are very careful with the access to your AWS environment, you can always see and adjust the policy templates we use in your accounts. Our policies are **read-only**, except for the billing S3 bucket we setup for you with your permission.
+
+[Cloudthread Policy](../../policy\_cfn\_cldthrd.yaml)
+{% endhint %}
+
+Cloudthread is using a delegated access role to read data from your account into the application This role has read access only to the resources necessary for generating the insights – AWS cost and usage data. This includes but not limited to:
+
+* [AWS Cost and Usage Report](https://aws.amazon.com/aws-cost-management/aws-cost-and-usage-reporting/) (CUR)
+* [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) API
+* [CloudWatch](https://aws.amazon.com/cloudwatch/) metrics
+* [AWS Simple Storage](https://aws.amazon.com/s3) (S3)
+ * To read saved CUR files
+* AWS Services (EC2, RDS, ElastiCache, OpenSearch, etc.)
+ * To generate usage optimization recommendations
+* [AWS Trusted Advisor](http://127.0.0.1:5000/s/Q8QqeF6WFPo2rNkc3ND6/the-basics/collections) (if enabled)
+ * To gather cost optimization recommendations suggested by AWS
+* [AWS Compute Optimizer](https://docs.aws.amazon.com/compute-optimizer/latest/ug/what-is-compute-optimizer.html)
+ * To gather compute optimization recommendations suggested by AWS
+
+{% hint style="info" %}
+In more detail, Cloudthread needs roughly **5 sets** of permissions / actions:
+
+1. **CUR bucket creation**, with complete access to this bucket (and only this bucket). This allows us to maintain the bucket policy overtime for any AWS changes that are required to maintain the CUR connection, and read CUR data.
+2. **Describe account read access** to understand AWS Organizations structure and gather account names and tags.
+3. **Cost Explorer read access** to power the first 24 hours of the tool.
+4. **CloudWatch read access** to collect CloudWatch data for savings opportunity processing.
+5. **Savings polices with service read access**, to detect the savings opportunities.
+{% endhint %}
+
+{% hint style="warning" %}
+Before connecting your account to Cloudthread we recommend you make sure [AWS Organizations with consolidated billing](https://aws.amazon.com/organizations/) are **enabled** in your AWS environment. If you're using AWS Organizations, you will need your organziation [Root ID](https://docs.aws.amazon.com/organizations/latest/userguide/orgs\_getting-started\_concepts.html).
+{% endhint %}
+
+{% hint style="success" %}
+Cloudthread is using the most granular version of [AWS Cost and Usage Report](https://aws.amazon.com/aws-cost-management/aws-cost-and-usage-reporting/) **(CUR)** to deliver cost insights – the report can be set up form scratch by our automated onboarding process, or can be reused in case you already have it in place.
+{% endhint %}
+
+## Connecting Cloudthread via CloudFormation Stack
+
+Cloudthread is using [**AWS CloudFormation** **(CF)** **service**](https://aws.amazon.com/cloudformation/) to enable fast and reliable integration. You **control** every part of this setup process and have full visibility into actions CF is performing with your AWS environment. At any point in time you can disconnect your account or adjust setup in [data-collection.md](../../fundamentals/settings/data-collection.md "mention") section in Cloudthread settings.
+
+In order for Cloudthread start functioning and delivering value, AWS Management Account has to be connected. This is the first and **essential** step after the account creation ([app.cloudthread.io/sign-up](https://app.cloudthread.io/sign-up)):
+
+### 1. Create and confirm Cloudthread account
+
+After your account is [created](https://app.core.cloudthread.io/sign-up/) and confirmed via email, you'll be prompted to get connected to your cloud environment through either creating a new Cost and Usage Report (CUR) or using the existing one.
+
+### 2. Choose an AWS integration option
+
+On the cloud environment integration page you open up the **AWS** dropdown.
+
+
+
+You will see the detailed instructions and a choice of AWS integration options covering most common situations:
+
+[#a.-you-do-not-have-any-existing-cost-and-usage-report-or-want-to-use-a-new-one](connecting-aws-account.md#a.-you-do-not-have-any-existing-cost-and-usage-report-or-want-to-use-a-new-one "mention")
+
+* a.1. You have only one account to integrate
+* a.2. You have many accounts managed by [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs\_introduction.html)
+
+[#b.-you-have-an-existing-cost-and-usage-report-set-up-and-want-to-use-it](connecting-aws-account.md#b.-you-have-an-existing-cost-and-usage-report-set-up-and-want-to-use-it "mention")
+
+* b.1. You have only one account to integrate
+* b.2. You have many accounts managed by [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs\_introduction.html)
+
+#### A. You do not have any existing Cost and Usage Report (or want to use a new one)
+
+Choose this option if:
+
+* You **do not have** Cost and Usage Report set up for your AWS billing account
+* You **have** Cost and Usage Report set up for your AWS billing account, but it is not corresponding to the following settings:
+ * **Hourly** time granularity
+ * **Parquet** file type
+ * **Overwrite Report** file versioning
+ * **Resource ID** level
+* You **have** Cost and Usage Report set up with settings above for your AWS billing account, but do not want to use it for some reason
+
+**A.1. You have only one account to integrate**
+
+If you have only one account to integrate, choose the relevant option in the integration options menu.
+
+
+
+
+
+
+
+Click `Go to New Report Template` to get redirected to your AWS console with ClouFormation settings already prefilled for you.
+
+
+
+
+
+
+
+{% hint style="warning" %}
+Make sure to log into the **AWS account** you want to integrate.
+{% endhint %}
+
+**A.2. You have many accounts managed by** [**AWS Organizations**](https://docs.aws.amazon.com/organizations/latest/userguide/orgs\_introduction.html)
+
+If you have multiple accounts to integrate, choose the relevant option in the integration options menu.
+
+
+
+
+
+
+
+Input your [Root ID](https://docs.aws.amazon.com/organizations/latest/userguide/orgs\_getting-started\_concepts.html), click `Save Stack` and proceed to CloudFormation stack setup (click `Go to New Report Template` to get redirected to AWS CloudFormation with prefilled settings).
+
+
+
+
+
+
+
+{% hint style="warning" %}
+Once you are redirected to AWS Cloud Formation ([next step](connecting-aws-account.md#3.-redirect-to-aws)), make sure to [Enable trusted access with AWS Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-enable-trusted-access.html).
+{% endhint %}
+
+{% hint style="info" %}
+If you have multiple accounts not tied together through [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs\_introduction.html), use [data-collection.md](../../fundamentals/settings/data-collection.md "mention") settings to add more accounts through **ad-hoc** single account integration option.
+{% endhint %}
+
+#### B. You have an existing Cost and Usage Report set up and want to use it
+
+Choose this option if:
+
+* You **have** Cost and Usage Report set up for your AWS billing account, and it corresponds to the following settings:
+ * **Hourly** time granularity
+ * **Parquet** file type
+ * **Overwrite Report** file versioning
+ * **Resource ID** level
+
+{% hint style="info" %}
+For the report settings input:
+
+**Report name** is the name of CUR report folder
+
+**Report prefix** is the path to CUR folder within the bucket (everything without the last `"/")`
+
+**Report bucket** is S3 bucket name
+
+
+{% endhint %}
+
+**B.1. You have only one account to integrate**
+
+If you have only one account to integrate, choose the relevant option in the integration options menu.
+
+
+
+
+
+
+
+Input the details of your existing Cost and Usage report and proceed to CloudFormation stack setup (click `Go to New Report Template` to get redirected to AWS CloudFormation with prefilled settings).
+
+
+
+
+
+
+
+**B.2. You have many accounts managed by** [**AWS Organizations**](https://docs.aws.amazon.com/organizations/latest/userguide/orgs\_introduction.html)
+
+If you have multiple accounts to integrate, choose the relevant option in the integration options menu.
+
+
+
+
+
+
+
+Input your [Root ID](https://docs.aws.amazon.com/organizations/latest/userguide/orgs\_getting-started\_concepts.html), input the details of your Cost and Usage report and proceed to CloudFormation stack setup (click `Go to New Report Template` to get redirected to AWS CloudFormation with prefilled settings).
+
+
+
+
+
+
+
+{% hint style="warning" %}
+Once you are redirected to AWS Cloud Formation ([next step](connecting-aws-account.md#3.-redirect-to-aws)), make sure to [Enable trusted access with AWS Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-enable-trusted-access.html).
+{% endhint %}
+
+{% hint style="info" %}
+Choosing an existing Cost and Usage Report for Cloudthread integration has an advantage of the **full historical data**, which will be missing in case of the new report creation. However, even with the new CUR the **historical backfill is possible**, and we will help you to arrange it with your AWS TAM.
+{% endhint %}
+
+{% hint style="info" %}
+More on the properties of CUR and where to find them:
+
+[AWS documentation](https://docs.aws.amazon.com/cur/latest/userguide/understanding-report-versions.html)
+
+[AWS Well-Architected Labs](https://www.wellarchitectedlabs.com/cost/100\_labs/100\_1\_aws\_account\_setup/3\_cur/)
+{% endhint %}
+
+### 3. Redirect to AWS
+
+Pressing "_Go to New Report Template_" (for new CUR integration) or "_Go to Existing Report Template_" (for existing CUR integration) to will automatically **redirect** you to your AWS console, and **pre-populate** a CF Stack with Cloudthread's required access permissions.
+
+{% hint style="warning" %}
+* Make sure you are in the right AWS account
+* We recommend to start with AWS management account, i.e. the main account
+{% endhint %}
+
+### 4. Review CF stack and confirm creation
+
+
+
+{% hint style="warning" %}
+Make sure to check mark **"I acknowledge that AWS CloudFormation might create IAM resources."**
+{% endhint %}
+
+{% hint style="warning" %}
+If you chose [Use an existing Cost and Usage Report](connecting-aws-account.md#b.-use-an-existing-cost-and-usage-report) integration option, the fields in the **Quick create stack** form will be pre-populated with the CUR parameters you supplied (Report name, Report prefix, Report bucket) – make sure they are correct.
+{% endhint %}
+
+{% hint style="danger" %}
+**Note:** In order for Cloudthread to work, [Cost and Usage Report](https://docs.aws.amazon.com/cur/latest/userguide/what-is-cur.html) (CUR) file needs to be set up in **us-east-1** region. CloudFormation stack has it preset, but if you change the region the stack won't work.
+{% endhint %}
+
+{% hint style="warning" %}
+If you used AWS Organizations setup options (a.2 and b.2 above), make sure to [Enable trusted access with AWS Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-enable-trusted-access.html).
+{% endhint %}
+
+Once you initiate CF stack creation, it will take up to an hour to setup the required resources and policies for Cloudthread to generate initial insights. Your AWS console will show something like this:
+
+
+
+Monitor the CloudFormation creation log and troubleshoot as necessary.
+
+### 5. Come back to Cloudthread App
+
+If the AWS integration went through (CloudFormation creation log finished with no errors), you will see the **success** message in Cloudthread app.
+
+
+
+
+
+
+
+Clock `Continue` to start using the app and seeing the first cost insights.
+
+
+
+{% hint style="info" %}
+AWS Cost and Usage Report (CUR) is being created (which can take up to 48 hours).
+{% endhint %}
+
+
+
+{% hint style="warning" %}
+Some sections of the app are grayed out right after the integration due to CUR integration timeline.
+{% endhint %}
+
+This means that you'll have high level savings and cost analytics available through the Cost Explorer API immediately when you login and that more granular resource level data will only be available when CUR data is ready.
+
+{% hint style="success" %}
+Once the CUR file is ready Cloudthread will **notify** you, and you will be able to see deeper insights on the platform.
+
+**Note:** Often, when CUR file is created it does not have all the historical data – your AWS support must be contacted to **backfill** it.
+{% endhint %}
diff --git a/guides/onboarding/connecting-gcp-billing-account.md b/guides/onboarding/connecting-gcp-billing-account.md
new file mode 100644
index 0000000..6ef3ae5
--- /dev/null
+++ b/guides/onboarding/connecting-gcp-billing-account.md
@@ -0,0 +1,132 @@
+# Connecting GCP Billing Account
+
+Connecting cloud account is an **essential** part of Cloudthread onboarding process and the most fundamental part of the setup. You cannot skip this step – your organization's cloud **savings, billing, and usage data** is essential for the platform to deliver value, i.e. help you to increase efficiency of your cloud spend.
+
+This is the guide for the **initial** data access setup, which is aimed at **GCP** **Billing** **Account** (see [GCP Cloud Billing documentation](https://cloud.google.com/billing/docs/concepts) for more information). This setup fully covers:
+
+## Cloudthread GCP access
+
+## Connecting Cloudthread
+
+### 1. Create and confirm Cloudthread account
+
+After your account is [created](https://app.core.cloudthread.io/sign-up/) and confirmed via email, you'll be prompted to get connected to your GCP environment by following the instructions.
+
+
+
+
+
+
+
+### 2. Set up GCP Billing in Big Query
+
+Execute following steps in your GCP Organization:
+
+1. Create a [Billing Account](https://cloud.google.com/billing/docs/how-to/create-billing-account) (if applicable)
+2. Create a [Billing Project](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-setup#project) (if applicable)
+3. [Link](https://cloud.google.com/billing/docs/how-to/modify-project#enable\_billing\_for\_a\_project) the Billing Project from Step 2 to the Billing Account from Step 1 (if applicable)
+4. [Link](https://cloud.google.com/billing/docs/how-to/modify-project#enable\_billing\_for\_a\_project) the desired Resource Projects to the Billing Account from Step 1 (if applicable)
+5. [Create](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-setup#create-bq-dataset) the Billing BigQuery Export Dataset
+6. [Enable](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-setup#enable-bq-export) the Detailed usage cost export for the Billing Account from Step 1 using the Billing BigQuery Export Dataset from Step 3
+
+Once you've completed the steps above click the button below to complete the integration by providing permissions to a Cloudthread generated Service Account.
+
+### 3. Setup GCP Service Account Permissions
+
+Once the billing reporting is set up in GCP, click `Setup GCP Service Account Permissions` and fill in the **Create GCP Collection Config** form.
+
+{% hint style="info" %}
+**GCP Collection Config** is used to pull data from your GCP environment.
+{% endhint %}
+
+
+
+#### 3.1 Add Recommender access for target Projects
+
+For the GCP projects you want to be covered by the [cost-savings](../../fundamentals/cost-savings/ "mention") features (leveraging GCP [Recommender API](https://console.cloud.google.com/apis/library/recommender.googleapis.com?project=cloudthread-production)) set up IAM permissions for Cloudthread in GCP Console:
+
+1. Copy the **Service Account** in the integration form in Cloudthread App
+2. Go to [IAM](https://console.cloud.google.com/iam-admin/iam) in all the Projects where you'd like to collect savings opportunities
+3. For each Project, click `+ Grant Access`
+4. Paste the Service Account into the New principals field
+5. Add `Recommender Viewer` permissions
+6. **Save** the access
+7. Ensure the [Recommender API](https://console.cloud.google.com/apis/library/recommender.googleapis.com?project=cloudthread-production) is enabled for each Project
+
+
+
+
+
+
+
+Once the permissions are added and saved for each target Project, come back to Cloudthread **Create GCP Collection Config** form and add `Recommender Project IDs` to the form field.
+
+#### 3.2 Add Billing access for target Projects
+
+_**Step 1. Add IAM permissions for Big Query access**_
+
+1. Copy the **Service Account** in the integration form in Cloudthread App
+2. Go to [IAM](https://console.cloud.google.com/iam-admin/iam) in your Billing Project
+3. Click `+ Grant Access`
+4. Paste the Service Account into the `New principals` field
+5. Add the `BigQuery Job User` permissions
+6. **Save** the access
+7. Go to [BigQuery](http://127.0.0.1:5000/s/olpj9GP0AzTnIchRMGJ0/guides/setting-up-alerts-and-reports) in your Billing Project
+
+
+
+
+
+
+
+_**Step 2. Add permissions for Billing Dataset access**_
+
+1. Navigate to your Billing BigQuery Export Dataset and click the data set
+2. Click `+ Sharing` and then `Permissions`
+3. Click `+ Add Principal`
+4. Paste the Service Account into the `New principals` field
+5. Add the `BigQuery Data Viewer` permissions
+6. **Save** the access
+7. Ensure the [BigQuery API](https://console.cloud.google.com/apis/library/bigquery.googleapis.com?project=cloudthread-production) is enabled for your Billing Project
+
+
+
+
+
+
+
+_**Step 3. Fill in Create GCP Collection Config form**_
+
+Once the permissions are added and saved for each target Project, come back to Cloudthread **Create GCP Collection Config** form and:
+
+* Add `Billing Data Project ID` to the form field
+ * Make sure the Project has the billing data – it can be different from the one you enabled Recommender for.
+* Add `Billing Data Table ID` to the form filed
+
+ * To determine your Table ID go to [GCP BigQuery](https://console.cloud.google.com/bigquery) and select your Billing BigQuery Export Dataset and find the `Detailed usage cost` Table ID in the table Details
+
+
+
+### 4. Validate and Save the **GCP Collection Config**
+
+Once the permissions are set up in GCP console and GCP Collection Config form is filled, click `Validate` to make sure the integration has no errors. If this is the case, click `Save Config` to enable the integration.
+
+
+
+If the GCP integration went through, you will see the **success** message in Cloudthread app.
+
+
+
+
+
+
+
+Clock `Continue` to start using the app and seeing the first cost insights.
+
+
+
+
+
+{% hint style="warning" %}
+Some sections of the app are grayed out right after the integration due to data pull integration timeline.
+{% endhint %}
diff --git a/guides/onboarding/managing-account-and-team-1.md b/guides/onboarding/managing-account-and-team-1.md
new file mode 100644
index 0000000..214e304
--- /dev/null
+++ b/guides/onboarding/managing-account-and-team-1.md
@@ -0,0 +1,47 @@
+# Adding new Users
+
+As you did the initial setup getting first [cost-view.md](../../fundamentals/cost-transparency/key-concepts/cost-view.md "mention") and [unit-metric.md](../../fundamentals/unit-metrics/key-concepts/unit-metric.md "mention") defined, you might want to invite more users to Cloudthread, so that they can see insights and create their own views and metrics o track.
+
+{% hint style="warning" %}
+You have be an **Admin** in order to invite new team members. See [account-and-team-management.md](../../fundamentals/settings/account-and-team-management.md "mention") for more details on roles and permissions.
+{% endhint %}
+
+## What do I need it for?
+
+{% hint style="info" %}
+Adding new users to the platform will enable the following:
+
+* More **people** in you organization will be able to see cost **insights** and [optimization-opportunities.md](../../fundamentals/cost-savings/key-concepts/optimization-opportunities.md "mention") in a convenient form
+* Engineers will be able to dig into the costs and unit metrics to understand how their workflows impact cloud spend and efficiency – this can enable **engineering accountability**
+* More people will be able to create [cost-view.md](../../fundamentals/cost-transparency/key-concepts/cost-view.md "mention") and [unit-metric.md](../../fundamentals/unit-metrics/key-concepts/unit-metric.md "mention") so that company's library has wider range of insights
+{% endhint %}
+
+## Detailed instructions
+
+1. Go to **Settings** section from the left menu pane
+2. Choose **User Management** tab
+
+
+
+
+
+
+
+
+3. Click `Invite User` button
+4. Fill in the user invite form
+
+ * User Name and e-mail are required
+ * Choose team for the user if applicable, see [teams.md](../../fundamentals/settings/teams.md "mention") for more info
+
+
+
+
+
+
+5. Push "Add New User"
+6. Invited user should receive an e-mail and be able to sign up to Cloudthread
+
+{% hint style="success" %}
+Cloudthread's [pricing](https://www.cloudthread.io/pricing) is **not based on number of users** – we do not want to create wrong incentives and discourage people in your organization to use the app and see valuable cloud efficiency insights.
+{% endhint %}
diff --git a/guides/onboarding/setting-up-teams.md b/guides/onboarding/setting-up-teams.md
new file mode 100644
index 0000000..7c0f3aa
--- /dev/null
+++ b/guides/onboarding/setting-up-teams.md
@@ -0,0 +1,61 @@
+# Setting up Teams
+
+Cloudthread platform allows to assign users to [teams.md](../../fundamentals/settings/teams.md "mention") that have **global filters** enabled, i.e. every user belonging to the Team can see all the data filtered without an ability to remove the filtering.
+
+This feature allows to restrict the access to the sensitive data across the complex organizational structure.
+
+{% hint style="warning" %}
+You have be an **Admin** in order to set up Teams. See [teams.md](../../fundamentals/settings/teams.md "mention") for more details on the functionality.
+{% endhint %}
+
+## What do I need it for?
+
+{% hint style="info" %}
+Setting up teams allows to:
+
+* **Restrict** the access of the certain group of users to the data that is relevant only to them
+* **Manage** alerting and reporting at Team level, with dedicated Slack channel
+* Assign Custom [cost-columns.md](../../fundamentals/settings/cost-columns.md "mention") to the Team
+{% endhint %}
+
+## Detailed instructions
+
+1. Go to [settings](../../fundamentals/settings/ "mention") section from the left menu pane
+2. Choose [teams.md](../../fundamentals/settings/teams.md "mention") tab
+
+
+
+
+
+
+
+
+3. Click `Create New Team`
+4. Fill in Team Name, add Slack channel (if applicable, see [#slack-integration](../../fundamentals/settings/slack-integration.md#slack-integration "mention") for details)
+
+
+
+
+
+
+
+
+5. Set up the **global team filter**
+ * There are three separate filter buckets: AWS, GCP and Custom Data (see [custom-data-api.md](../../fundamentals/custom-data-api.md "mention") for details)
+ * The filter is editable by Admin after the team is created
+6. Click `Save Team`
+7. See the team appear in the table in Settings and in the Admin Team Assumption drop-down at the left menu pane
+
+
+
+
+
+
+8. Add [cost-view.md](../../fundamentals/cost-transparency/key-concepts/cost-view.md "mention") to the newly created team as necessary
+ * These Cost Views will be available for the team with the global filter applied on top (in addition to any existing filters)
+ * By default, the Team members have no previously created custom Cost Views available to them
+9. Assume the created team through the drop-down at the left menu pane to check if everything was set up correctly
+
+{% hint style="success" %}
+Team global filter is applied across all the features of Cloudthread, i.e. Savings Hub and Unit Metrics will be restricted based on filter rules.
+{% endhint %}
diff --git a/guides/optimizing-cloud-costs/README.md b/guides/optimizing-cloud-costs/README.md
new file mode 100644
index 0000000..c5ea1ff
--- /dev/null
+++ b/guides/optimizing-cloud-costs/README.md
@@ -0,0 +1,2 @@
+# Optimizing Cloud Costs
+
diff --git a/guides/optimizing-cloud-costs/analyzing-optimization-opportunities.md b/guides/optimizing-cloud-costs/analyzing-optimization-opportunities.md
new file mode 100644
index 0000000..261f258
--- /dev/null
+++ b/guides/optimizing-cloud-costs/analyzing-optimization-opportunities.md
@@ -0,0 +1,63 @@
+# Analyzing Savings Opportunities
+
+Once your AWS accounts are **connected** (see [onboarding](../onboarding/ "mention")), Cloudthread is ready to serve you **cost optimization insights.** This guide will walk you through the analysis of the [optimization-opportunities.md](../../fundamentals/cost-savings/key-concepts/optimization-opportunities.md "mention") on the platform.
+
+{% hint style="success" %}
+If you are looking for **general cost analytics**, see [monitoring-cloud-costs](../monitoring-cloud-costs/ "mention") guide section.
+{% endhint %}
+
+## What do I need it for?
+
+{% hint style="info" %}
+Analyzing [optimization-opportunities.md](../../fundamentals/cost-savings/key-concepts/optimization-opportunities.md "mention") can help you to:
+
+* Review the **state** of cost optimization of your cloud environments
+* Understand the most **impactful** actions with the **highest savings potential**
+* Dig into specific recommendations to understand their **complexity** and **risks**
+{% endhint %}
+
+## App sections
+
+{% content-ref url="../../fundamentals/cost-savings/savings-dashboard.md" %}
+[savings-dashboard.md](../../fundamentals/cost-savings/savings-dashboard.md)
+{% endcontent-ref %}
+
+{% content-ref url="../../fundamentals/cost-savings/opportunities-explorer.md" %}
+[opportunities-explorer.md](../../fundamentals/cost-savings/opportunities-explorer.md)
+{% endcontent-ref %}
+
+## Detailed instructions
+
+1. Navigate to [savings-dashboard.md](../../fundamentals/cost-savings/savings-dashboard.md "mention") section in [cost-savings](../../fundamentals/cost-savings/ "mention") space in the menu to the left
+ * You will see a dashboard with the high-level information on the state of cost optimization within your cloud environment
+ * If you have not created any [savings-threads.md](../../fundamentals/cost-savings/key-concepts/savings-threads.md "mention"), most of the tables of the dashboard will be empty, you will need to look at [#cost-insights-cards](../../fundamentals/cost-savings/savings-dashboard.md#cost-insights-cards "mention") and [#opportunity-tables](../../fundamentals/cost-savings/savings-dashboard.md#opportunity-tables "mention") to get the first impression of the savings potential
+
+
+
+
+
+
+
+
+2. Navigate to [opportunities-explorer.md](../../fundamentals/cost-savings/opportunities-explorer.md "mention") section in [cost-savings](../../fundamentals/cost-savings/ "mention") space in the menu to the left to review the concrete optimization opportunities
+ * You can also click "Explore Opportunities" at the top right of [#opportunity-tables](../../fundamentals/cost-savings/savings-dashboard.md#opportunity-tables "mention")
+ * You will see the [#opportunities-table](../../fundamentals/cost-savings/opportunities-explorer.md#opportunities-table "mention") with all the opportunities found by Cloudthread
+
+
+
+
+
+
+
+
+3. Adjust **sorting** and **filter** [#opportunities-table](../../fundamentals/cost-savings/opportunities-explorer.md#opportunities-table "mention")
+ * Sort by estimated potential savings, difficulty or any other available dimensions (see [opportunities-explorer.md](../../fundamentals/cost-savings/opportunities-explorer.md "mention") for more details)
+4. Click on Opportunity ID field for an opportunity that you want to explore deeper
+ * You will be redirected to [#opportunity-details-page](../../fundamentals/cost-savings/opportunities-explorer.md#opportunity-details-page "mention")
+5. If some of the opportunities revealed by Cloudthread seem **irrelevant**, select the corresponding rows of the [#opportunities-table](../../fundamentals/cost-savings/opportunities-explorer.md#opportunities-table "mention") by clicking checkmarks at the left of the row and then click [#archive-selected-button](../../fundamentals/cost-savings/opportunities-explorer.md#archive-selected-button "mention")
+ * Archiving can also be performed at a single row level by clicking trash bin icon at the right of the row
+
+{% hint style="success" %}
+Once you have an idea of cost savings opportunities present, you can start creating the **workflows** around them. See [creating-saving-threads.md](creating-saving-threads.md "mention") guide for further details.
+{% endhint %}
+
diff --git a/guides/optimizing-cloud-costs/creating-custom-optimization-opportunities.md b/guides/optimizing-cloud-costs/creating-custom-optimization-opportunities.md
new file mode 100644
index 0000000..bdf6364
--- /dev/null
+++ b/guides/optimizing-cloud-costs/creating-custom-optimization-opportunities.md
@@ -0,0 +1,32 @@
+# Creating Manual Savings Opportunities
+
+Cloudthread **automatically** analyzes your cloud environment and identifies [optimization-opportunities.md](../../fundamentals/cost-savings/key-concepts/optimization-opportunities.md "mention"). However, the platform also supports creation of **custom** opportunities for **ad-hoc** optimization needs (see [#optimization-type](../../fundamentals/cost-savings/key-concepts/optimization-opportunities.md#optimization-type "mention") for more details).
+
+## What do I need it for?
+
+{% hint style="info" %}
+Creating custom [optimization-opportunities.md](../../fundamentals/cost-savings/key-concepts/optimization-opportunities.md "mention") can help you to:
+
+* **Share** your ad-hoc optimization tasks through [savings-threads.md](../../fundamentals/cost-savings/key-concepts/savings-threads.md "mention")
+* **Review the** enriched context enriched context and implementation instructions
+* **Track** the progress of recommendation implementation via statuses
+{% endhint %}
+
+## App sections
+
+{% content-ref url="../../fundamentals/cost-savings/opportunities-explorer.md" %}
+[opportunities-explorer.md](../../fundamentals/cost-savings/opportunities-explorer.md)
+{% endcontent-ref %}
+
+## Detailed instructions
+
+1. Navigate to [opportunities-explorer.md](../../fundamentals/cost-savings/opportunities-explorer.md "mention") section in [cost-savings](../../fundamentals/cost-savings/ "mention") space in the menu to the left to review the concrete optimization opportunities
+2. Click [#new-manual-opportunity-button](../../fundamentals/cost-savings/opportunities-explorer.md#new-manual-opportunity-button "mention")
+3. Fill in the form by entering estimated **Cost Impact**, Opportunity **Description,** Opportunity **Difficulty** as well as by assigning [savings-threads.md](../../fundamentals/cost-savings/key-concepts/savings-threads.md "mention"), Resource ID, Opportunity **Type** and Recommendation
+
+
+
+
+
+
+4. You will see the custom opportunity in [opportunities-explorer.md](../../fundamentals/cost-savings/opportunities-explorer.md "mention")
diff --git a/guides/optimizing-cloud-costs/creating-saving-threads.md b/guides/optimizing-cloud-costs/creating-saving-threads.md
new file mode 100644
index 0000000..b67945c
--- /dev/null
+++ b/guides/optimizing-cloud-costs/creating-saving-threads.md
@@ -0,0 +1,57 @@
+# Creating Saving Threads
+
+Once you have analyzed the optimization opportunities found in your cloud environment by Cloudthread (see [analyzing-optimization-opportunities.md](analyzing-optimization-opportunities.md "mention")), you can sart creating the **workflows** around them. This guide will walk you through the creation of your first **cost optimization workflow** with [savings-threads.md](../../fundamentals/cost-savings/key-concepts/savings-threads.md "mention").
+
+## What do I need it for?
+
+{% hint style="info" %}
+Creating [savings-threads.md](../../fundamentals/cost-savings/key-concepts/savings-threads.md "mention") can help you to:
+
+* **Group** [optimization-opportunities.md](../../fundamentals/cost-savings/key-concepts/optimization-opportunities.md "mention") into a **mini-project** for easier implementation down the line
+* **Analyze** the enriched context and implementation
+* **Share** the enriched context on the group of opportunities with stakeholders through Jira
+ * See [#jira-integration](../../fundamentals/settings/slack-integration.md#jira-integration "mention") for instructions on setting up the integration
+* **Review the** enriched context enriched context and implementation instructions
+* **Track** the progress of recommendation implementation via statuses
+{% endhint %}
+
+## App sections
+
+{% content-ref url="../../fundamentals/cost-savings/savings-threads-app-section.md" %}
+[savings-threads-app-section.md](../../fundamentals/cost-savings/savings-threads-app-section.md)
+{% endcontent-ref %}
+
+{% content-ref url="../../fundamentals/cost-savings/opportunities-explorer.md" %}
+[opportunities-explorer.md](../../fundamentals/cost-savings/opportunities-explorer.md)
+{% endcontent-ref %}
+
+## Detailed instructions
+
+1. Navigate to [savings-threads-app-section.md](../../fundamentals/cost-savings/savings-threads-app-section.md "mention") in the menu to the left
+2. Filter the [#opportunities-table](../../fundamentals/cost-savings/opportunities-explorer.md#opportunities-table "mention") and choose the opportunities you want to group and include to [savings-threads.md](../../fundamentals/cost-savings/key-concepts/savings-threads.md "mention")
+
+
+
+
+
+
+
+
+3. Click [#create-new-thread-button](../../fundamentals/cost-savings/savings-threads-app-section.md#create-new-thread-button "mention")
+4. Fill in the form by entering Thread **Name**, Thread **Description**
+
+
+
+
+
+
+5. Make sure the opportunities in the thread are correct, click `Edit` in the form to see the selected opportunities and to edit the selection
+
+
+
+
+
+
+6. Click `Create New Thread` – you will be redirected to [#savings-thread-details-page](../../fundamentals/cost-savings/savings-threads-app-section.md#savings-thread-details-page "mention") where you can see the enriched context
+7. Click [#start-workflow-button](../../fundamentals/cost-savings/savings-threads-app-section.md#start-workflow-button "mention") to create Jira ticket associated with the created Thread
+ * See [#jira-integration](../../fundamentals/settings/slack-integration.md#jira-integration "mention") for instructions on setting up the integration
diff --git a/guides/optimizing-cloud-costs/supported-savings-opportunities.md b/guides/optimizing-cloud-costs/supported-savings-opportunities.md
new file mode 100644
index 0000000..c1584ae
--- /dev/null
+++ b/guides/optimizing-cloud-costs/supported-savings-opportunities.md
@@ -0,0 +1,9 @@
+# Supported Optimization Opportunities
+
+{% hint style="success" %}
+Below you can see a **live tracker** of all the [optimization-opportunities.md](../../fundamentals/cost-savings/key-concepts/optimization-opportunities.md "mention") Cloudthread platform supports. This list is growing **fast**!
+
+If you think that something **important** is missing, don't hesitate to reach out to us at [hey@cloudthread.io](mailto:hey@cloudthread.io)
+{% endhint %}
+
+{% embed url="https://docs.google.com/spreadsheets/d/1idSzjpVyMLdWQDtbhFkgkZyTdHvXyJ4m4dIPpRTSu6I/edit?usp=sharing" fullWidth="true" %}
diff --git a/guides/performing-root-cause-analysis.md b/guides/performing-root-cause-analysis.md
deleted file mode 100644
index 3c91e09..0000000
--- a/guides/performing-root-cause-analysis.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Performing Root Cause Analysis
-
-Root Cause Analysis (RCA) is an important part of dealing with cloud costs: identifying the reason of cost spikes efficiently is essential. Cloudthread's [drill-down.md](../fundamentals/drill-down.md "mention") feature empowers you to do it with the depth of AWS resource level.
-
-## What do I need it for?
-
-{% hint style="info" %}
-Using [drill-down.md](../fundamentals/drill-down.md "mention") feature for RCA can help you to:
-
-* Find out answers to the questions like "Which AWS **resource** is behind the increase in cost of my **team's** cloud infrastructure?"
-* See the **breakdown** of specific parts of you spend by Account, Region, Service,, Usage Type, Operation and Resource.
-{% endhint %}
-
-## Detailed instructions
-
-1. Choose Costs Transparency section in the menu to the right, then choose Cost Overview item
- * You will see a page with Total Cost View – a default Cost View representing all the spend from added accounts, will no filters applied
-2. Choose the saved Cost View from the list or create a new one (see[creating-custom-cost-views.md](creating-custom-cost-views.md "mention") for guidance)
-3. Move to the second chart on page – **Breakdown Chart** and navigate to table below the chart
- * The table shows the items visualized on breakdown chart
-4. Hover over the table row you want to drill-down into and click the drill-down button (arrow down)
- * You will see table and chart change to show the items on the next level of drill-down contributing to the item you chose
- * The drill-down level sequence we currently support: Account -> Region -> Service -> Usage Type -> Operation -> Resource
- * Usage Type -> Operation -> Resource levels are available starting from Service )i.e. you cannot drill down to resource right from Account level)
-5. Once you are in drill-down mode, you can see the level you are at on the control line above the table
- * You can change levels from the control line as you go
- * Going level back is also done through control line by deleting the latest level
-
-
diff --git a/guides/setting-up-alerts-and-reports.md b/guides/setting-up-alerts-and-reports.md
deleted file mode 100644
index fe2ee69..0000000
--- a/guides/setting-up-alerts-and-reports.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# Setting up Alerts and Reports
-
-Once you get familiar with [creating-custom-cost-views.md](creating-custom-cost-views.md "mention") and [creating-custom-unit-metrics.md](creating-custom-unit-metrics.md "mention"), you might want to setup [notifications](../fundamentals/notifications/ "mention") for the metrics so that important insights are not missed by you and your team.
-
-Cloudthread has two types of notifications:
-
-* [alerts.md](../fundamentals/notifications/alerts.md "mention") – short notifications sent on certain event (like threshold break)
-* [reports.md](../fundamentals/notifications/reports.md "mention") – detailed notifications sent on schedule
-
-{% hint style="success" %}
-All notifications can be delivered through **e-mail** and **Slack** (see [slack-integration.md](../fundamentals/notifications/slack-integration.md "mention") for Slack App setup instructions).
-{% endhint %}
-
-## What do I need it for?
-
-{% hint style="info" %}
-Using [alerts.md](../fundamentals/notifications/alerts.md "mention") and [reports.md](../fundamentals/notifications/reports.md "mention") will help you to:
-
-* Get **notified** when your [cost-view.md](../fundamentals/cost-transparency/cost-view.md "mention") or [unit-metric.md](../fundamentals/unit-metrics/unit-metric.md "mention") break absolute or relative threshold you defined.
-* Receive **detailed** insights on cloud spend relevant to you every week/month/quarter.
-* **Subscribe** team members to important notifications so that they receive important information on their cloud costs in time.
-{% endhint %}
-
-## Detailed instructions
-
-### Alerts
-
-{% hint style="warning" %}
-Currently alerts are available for [unit-metric.md](../fundamentals/unit-metrics/unit-metric.md "mention") only.
-{% endhint %}
-
-1. To set up [alerts.md](../fundamentals/notifications/alerts.md "mention") you should navigate to Unit Metrics Overview in the right menu pane
-2. Once you are in Unit Metrics, choose the saved metric that you want to set alert on
-3. Push "Set Alert" button at the bottom part of the first chart (Unit Metric) in Threshold Alerts section
- * 
-4. Push "Add Alert" and fill in the form with the alert name, threshold type (absolute $ or relative %) and the value
-5. Fill in the delivery channel details
- 1. For e-mails you can add as many addresses as you want separated by a comma
- 2. For Slack you need to supply webhooks data for channels you want the alerts be delivered to – see [slack-integration.md](../fundamentals/notifications/slack-integration.md "mention") for more details on how to obtain webhook IDs
-6. Save the alert one form is filled
-7. You should now be receiving a notification whenever the threshold for your unit metric is broken
-
-
-
-### Reports
-
-{% hint style="warning" %}
-Currently only one report type is available: **General Cost Report** is delivered **weekly**. You can learn more about it in [reports.md](../fundamentals/notifications/reports.md "mention") section.
-{% endhint %}
-
-1. To set up [reports.md](../fundamentals/notifications/reports.md "mention") you should navigate to Reports section at the bottom part of the right menu
-2. There you will be able to see the list of the reports that already exist (created by any user of the platform) as well as the form to create a new report
-3. Fill the form in with report name and report type (for now only one value is available - General Report)
-4. Choose saved Cost View that the report will be based on
- * See [cost-view.md](../fundamentals/cost-transparency/cost-view.md "mention") for more details
- * You can choose only one Cost View for your report
- * If nothing is selected, default Cost View (Total Cost) will be used
-5. Choose saved Unit Metrics to be added to report
- 1. See [unit-metric.md](../fundamentals/unit-metrics/unit-metric.md "mention") for more details
- 2. You can choose multiple unit metrics to be added to your report
- 3. If nothing is selected, no unit metric section will be present in report
-6. Add threshold data for the report section flagging biggest spend changes
- * Absolute Spend Threshold: report will not highlight items that have absolute spend less than the threshold
- * Absolute Change Threshold: report will not highlight items that have absolute spend change less than the threshold
- * Relative Change Threshold: report will not highlight items that have % spend change less than the threshold
-7. Fill in the delivery channel details
- * For e-mails you can add as many addresses as you want separated by a comma
- * For Slack you need to supply webhooks data for channels you want the alerts be delivered to – see [slack-integration.md](../fundamentals/notifications/slack-integration.md "mention") for more details on how to obtain webhook IDs
-8. Save the report – it should appear in the list above the form, and you will be getting the report on schedule specified in report description (see [reports.md](../fundamentals/notifications/reports.md "mention") for more details)
-
-{% hint style="success" %}
-By default a report for **Total Cost** view is created as part of **onboarding** process. After you set up an account, you will be receiving a weekly report to your inbox, no action needed.
-{% endhint %}
-
-
diff --git a/guides/tagging-cloud-resources/README.md b/guides/tagging-cloud-resources/README.md
new file mode 100644
index 0000000..0054a6d
--- /dev/null
+++ b/guides/tagging-cloud-resources/README.md
@@ -0,0 +1,2 @@
+# Tagging Cloud Resources
+
diff --git a/guides/tagging-cloud-resources/setting-up-tag-catalog.md b/guides/tagging-cloud-resources/setting-up-tag-catalog.md
new file mode 100644
index 0000000..6575c50
--- /dev/null
+++ b/guides/tagging-cloud-resources/setting-up-tag-catalog.md
@@ -0,0 +1,47 @@
+# Setting up Tag Catalog
+
+Cloudthread allows to automate tagging of Terraform-created resources through the use of [tag-catalogs.md](../../fundamentals/tag-assistant/tag-catalogs.md "mention").
+
+## What do I need it for?
+
+{% hint style="info" %}
+Adding a Tag Catalog entry allows to:
+
+* **Make** **sure** no AWS resources without proper tags from a centrally maintained tag repository are brought up by Terraform builds
+* **Change** existing tags for a new AWS resources globally
+* **Track** the changes to the tag catalog
+{% endhint %}
+
+## Detailed instructions
+
+1. Proceed to the [tag-catalogs.md](../../fundamentals/tag-assistant/tag-catalogs.md "mention") tab under [tag-assistant](../../fundamentals/tag-assistant/ "mention") section in the main menu (left pane)
+
+ .png>)
+2. Click 'Create New Catalog' and fill in the form
+
+ .png>)
+3. Click 'Create API Key for Tag Assistant' and create an API key. **Only admins can generate API keys**
+4. Add the following GitHub action yaml file `.github/workflows/tag-assistant.yml` to your repository
+
+ ```
+ name: Tag Assistant
+
+ on:
+ pull_request
+
+ jobs:
+ tag-assistant-job:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Run CloudThread Tag Assistant
+ uses: cloudthread/tag-assistant-action@v2
+ with:
+ terraform-path: TBD (optional)
+ catalog-key: ${{ secrets.CLOUDTHREAD_CATALOG_KEY }}
+ cloudthread-token: ${{ secrets.CLOUDTHREAD_TOKEN }}
+ ```
+
+ * `terraform-path` should be the file path for where your Terraform project lives within the repository.
+5. Add the required `CLOUDTHREAD_CATALOG_KEY` and `CLOUDTHREAD_TOKEN` variables to your repository **Action Secrets** in the repository Settings page. `CLOUDTHREAD_CATALOG_KEY` should be set to the catalog key from **Step 2**, and `CLOUDTHREAD_TOKEN` set to the API Key generated in **Step 3.**
+6. Ensure **Action Workflow permissions** is set to `Read and write permission` and that you enable `Allow GitHub Actions to create and approve pull requests` in the repository Settings page.
diff --git a/image (9).png b/image (9).png
deleted file mode 100644
index a785a9a..0000000
Binary files a/image (9).png and /dev/null differ
diff --git a/policy_cfn_cldthrd.yaml b/policy_cfn_cldthrd.yaml
new file mode 100644
index 0000000..d656495
--- /dev/null
+++ b/policy_cfn_cldthrd.yaml
@@ -0,0 +1,692 @@
+Parameters:
+ CloudthreadStackToken:
+ Type: String
+ Default: foo
+ Description: DO NOT CHANGE! Token to validate this stack in Cloudthread's environment.
+ ExternalId:
+ Type: String
+ Default: bar
+ Description: DO NOT CHANGE! Token to validate Cloudthread in this environment.
+ ReportName:
+ Type: String
+ Default: foo
+ Description: New report name
+ ReportPrefix:
+ Type: String
+ Default: bar
+ Description: New report prefix
+Resources:
+ CloudthreadCostUsageRole:
+ Type: "AWS::IAM::Role"
+ Properties:
+ AssumeRolePolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Principal:
+ AWS: foo
+ Action:
+ - "sts:AssumeRole"
+ Condition:
+ StringEquals:
+ sts:ExternalId:
+ Ref: ExternalId
+ Path: "/"
+ RolePoliciesDescribeAccountCU:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-describe-account-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "organizations:Describe*"
+ - "organizations:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostUsageRole"
+ RolePoliciesListPermissionsCU:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-list-permissions-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "iam:ListRolePolicies"
+ Resource:
+ - !GetAtt CloudthreadCostUsageRole.Arn
+ Roles:
+ - Ref: "CloudthreadCostUsageRole"
+ RolePoliciesCostExplorerCU:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-costexplorer-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "ce:Describe*"
+ - "ce:Get*"
+ - "ce:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostUsageRole"
+ CostUsageReportBucket:
+ Type: AWS::S3::Bucket
+ DeletionPolicy: Retain
+ Properties:
+ AccessControl: Private
+ PublicAccessBlockConfiguration:
+ BlockPublicAcls: True
+ BlockPublicPolicy: True
+ IgnorePublicAcls: True
+ RestrictPublicBuckets: True
+ BucketEncryption:
+ ServerSideEncryptionConfiguration:
+ - ServerSideEncryptionByDefault:
+ SSEAlgorithm: AES256
+ RolePoliciesCostUsageReportAccess:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-costandusagereport-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "cur:DescribeReportDefinitions"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostUsageRole"
+ RolePoliciesCostUsageReportBucketAccess:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-costandusagereportbucket-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "s3:*"
+ Resource:
+ - !GetAtt CostUsageReportBucket.Arn
+ - Effect: "Allow"
+ Action:
+ - "s3:*"
+ Resource:
+ Fn::Join:
+ - ""
+ - - "arn:aws:s3:::"
+ - Ref: CostUsageReportBucket
+ - "/*"
+ Roles:
+ - Ref: "CloudthreadCostUsageRole"
+ CostUsageReportBucketPolicy:
+ Type: AWS::S3::BucketPolicy
+ DeletionPolicy: Retain
+ Properties:
+ Bucket:
+ Ref: CostUsageReportBucket
+ PolicyDocument:
+ Version: 2012-10-17
+ Statement:
+ - Action:
+ - 's3:GetBucketAcl'
+ - 's3:GetBucketPolicy'
+ Effect: Allow
+ Resource: !Join
+ - ''
+ - - 'arn:aws:s3:::'
+ - !Ref CostUsageReportBucket
+ Principal:
+ Service: "billingreports.amazonaws.com"
+ - Action:
+ - 's3:PutObject'
+ Effect: Allow
+ Resource: !Join
+ - ''
+ - - 'arn:aws:s3:::'
+ - !Ref CostUsageReportBucket
+ - /*
+ Principal:
+ Service: "billingreports.amazonaws.com"
+ - Action:
+ - 's3:*'
+ Effect: "Deny"
+ Principal: "*"
+ Resource: !Join
+ - ''
+ - - 'arn:aws:s3:::'
+ - !Ref CostUsageReportBucket
+ - /*
+ Condition:
+ Bool:
+ aws:SecureTransport: "false"
+ CostUsageReport:
+ DependsOn:
+ - CostUsageReportBucket
+ Type: AWS::CUR::ReportDefinition
+ DeletionPolicy: Retain
+ Properties:
+ AdditionalSchemaElements:
+ - RESOURCES
+ Compression: Parquet
+ Format: Parquet
+ RefreshClosedReports: True
+ ReportName:
+ Ref: ReportName
+ ReportVersioning: OVERWRITE_REPORT
+ S3Bucket:
+ Ref: CostUsageReportBucket
+ S3Prefix:
+ Ref: ReportPrefix
+ S3Region:
+ Ref: AWS::Region
+ TimeUnit: HOURLY
+ RegisterCostUsageRole:
+ DependsOn:
+ - CloudthreadCostUsageRole
+ - RolePoliciesDescribeAccountCU
+ - RolePoliciesListPermissionsCU
+ - RolePoliciesCostExplorerCU
+ - CostUsageReportBucket
+ - RolePoliciesCostUsageReportAccess
+ - RolePoliciesCostUsageReportBucketAccess
+ - CostUsageReportBucketPolicy
+ - CostUsageReport
+ Type: Custom::RegisterRole
+ Properties:
+ ServiceToken: foo
+ AwsAccountId:
+ Ref: AWS::AccountId
+ RoleName:
+ Ref: CloudthreadCostUsageRole
+ RoleArn: !GetAtt CloudthreadCostUsageRole.Arn
+ CloudthreadStackToken:
+ Ref: CloudthreadStackToken
+ CloudthreadStackType: cost-and-usage
+ ExternalId:
+ Ref: ExternalId
+ CURReportName:
+ Ref: ReportName
+ CURReportPrefix:
+ Ref: ReportPrefix
+ CURS3Bucket:
+ Ref: CostUsageReportBucket
+ CloudthreadCostOptimizationRole:
+ Type: "AWS::IAM::Role"
+ Properties:
+ AssumeRolePolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Principal:
+ AWS: bar
+ Action:
+ - "sts:AssumeRole"
+ Condition:
+ StringEquals:
+ sts:ExternalId:
+ Ref: ExternalId
+ Path: "/"
+ RolePoliciesDescribeAccountCO:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-describe-account-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "organizations:Describe*"
+ - "organizations:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesListPermissionsCO:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-list-permissions-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "iam:ListRolePolicies"
+ Resource:
+ - !GetAtt CloudthreadCostOptimizationRole.Arn
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesReadCloudwatch:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-read-cloudwatch-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "cloudwatch:Describe*"
+ - "cloudwatch:Get*"
+ - "cloudwatch:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectEC2Opportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-ec2-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "ec2:Describe*"
+ - "ec2:Get*"
+ - "ec2:List*"
+ - "ec2:Search*"
+ - "autoscaling:Describe*"
+ - "autoscaling:Get*"
+ - "autoscaling-plans:Describe*"
+ - "autoscaling-plans:Get*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "ec2:GetConsoleOutput"
+ - "ec2:GetPasswordData"
+ - "ec2:GetConsoleScreenshot"
+ - "ec2:GetInstanceUefiData"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectComputeOptimizerOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-computeoptimizer-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "compute-optimizer:Describe*"
+ - "compute-optimizer:Get*"
+ - "compute-optimizer:List*"
+ - "compute-optimizer:Export*"
+ - "compute-optimizer:Update*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectCostExplorerOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-costexplorer-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "ce:Describe*"
+ - "ce:Get*"
+ - "ce:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectRDSOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-rds-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "rds:Describe*"
+ - "rds:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectS3Opportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-s3-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "s3:Describe*"
+ - "s3:Get*"
+ - "s3:List*"
+ - "s3-outposts:Get*"
+ - "s3-outposts:List*"
+ - "s3-object-lambda:Get*"
+ - "s3-object-lambda:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "s3:GetObject*"
+ - "s3-object-lambda:GetObject*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectDynamoDBOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-dynamodb-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "dynamodb:Describe*"
+ - "dynamodb:Get*"
+ - "dynamodb:List*"
+ - "dax:Describe*"
+ - "dax:Get*"
+ - "dax:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "dynamodb:GetItem*"
+ - "dynamodb:GetRecords"
+ - "dynamodb:GetShardIterator"
+ - "dax:GetItem*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectLambdaOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-lambda-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "lambda:Get*"
+ - "lambda:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectStepFunctionOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-stepfunction-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "states:Describe*"
+ - "states:Get*"
+ - "states:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "states:ListExecutions"
+ - "states:DescribeExecution"
+ - "states:DescribeMapRun"
+ - "states:GetExecutionHistory"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectECSOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-ecs-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "ecs:Describe*"
+ - "ecs:Get*"
+ - "ecs:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectELBOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-elb-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "elasticloadbalancing:Describe*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectElasticCacheOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-ec-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "elasticache:Describe*"
+ - "elasticache:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectOpenSearchOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-opensearch-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "aoss:Describe*"
+ - "aoss:Get*"
+ - "aoss:List*"
+ - "es:Describe*"
+ - "es:Get*"
+ - "es:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectTrustedAdvisorOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-trustedadvisor-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "support:DescribeTrustedAdvisorCheckResult"
+ - "support:DescribeTrustedAdvisorChecks"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectCloudwatchOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-cloudwatch-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "cloudwatch:Describe*"
+ - "cloudwatch:Get*"
+ - "cloudwatch:List*"
+ - "logs:Describe*"
+ - "logs:Get*"
+ - "logs:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "logs:FilterLogEvents"
+ - "logs:GetLogEvents"
+ - "logs:GetQueryResults"
+ - "logs:GetLogRecord"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectEFSOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-efs-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "elasticfilesystem:Describe*"
+ - "elasticfilesystem:Get*"
+ - "elasticfilesystem:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectCloudtrailOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-cloudtrail-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "cloudtrail:Describe*"
+ - "cloudtrail:Get*"
+ - "cloudtrail:List*"
+ - "cloudtrail:Lookup*"
+ - "cloudtrail:StartQuery"
+ - "cloudtrail:CancelQuery"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectRoute53Opportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-route53-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "route53:Describe*"
+ - "route53:Get*"
+ - "route53:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectMWAAOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-mwaa-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "airflow:Describe*"
+ - "airflow:Get*"
+ - "airflow:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectRedshiftOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-redshift-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "redshift:Describe*"
+ - "redshift:Get*"
+ - "redshift:List*"
+ - "redshift-serverless:Describe*"
+ - "redshift-serverless:Get*"
+ - "redshift-serverless:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "redshift:ListSavedQueries"
+ - "redshift:DescribeHsmClientCertificates"
+ - "redshift:DescribeHsmClientCertificates"
+ - "redshift:DescribeSavedQueries"
+ - "redshift:DescribeQuery"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RegisterCostOptimizationRole:
+ DependsOn:
+ - CloudthreadCostOptimizationRole
+ - RolePoliciesDescribeAccountCO
+ - RolePoliciesListPermissionsCO
+ - RolePoliciesReadCloudwatch
+ - RolePoliciesDetectEC2Opportunities
+ - RolePoliciesDetectComputeOptimizerOpportunities
+ - RolePoliciesDetectCostExplorerOpportunities
+ - RolePoliciesDetectRDSOpportunities
+ - RolePoliciesDetectS3Opportunities
+ - RolePoliciesDetectDynamoDBOpportunities
+ - RolePoliciesDetectLambdaOpportunities
+ - RolePoliciesDetectStepFunctionOpportunities
+ - RolePoliciesDetectECSOpportunities
+ - RolePoliciesDetectELBOpportunities
+ - RolePoliciesDetectElasticCacheOpportunities
+ - RolePoliciesDetectOpenSearchOpportunities
+ - RolePoliciesDetectTrustedAdvisorOpportunities
+ - RolePoliciesDetectCloudwatchOpportunities
+ - RolePoliciesDetectEFSOpportunities
+ - RolePoliciesDetectCloudtrailOpportunities
+ - RolePoliciesDetectRoute53Opportunities
+ - RolePoliciesDetectMWAAOpportunities
+ - RolePoliciesDetectRedshiftOpportunities
+ Type: Custom::RegisterRole
+ Properties:
+ ServiceToken: foo
+ AwsAccountId:
+ Ref: AWS::AccountId
+ RoleName:
+ Ref: CloudthreadCostOptimizationRole
+ RoleArn: !GetAtt CloudthreadCostOptimizationRole.Arn
+ CloudthreadStackToken:
+ Ref: CloudthreadStackToken
+ CloudthreadStackType: cost-optimization
+ ExternalId:
+ Ref: ExternalId
diff --git a/policy_cfn_cldthrd_subaccount.yaml b/policy_cfn_cldthrd_subaccount.yaml
new file mode 100644
index 0000000..f3bbf5a
--- /dev/null
+++ b/policy_cfn_cldthrd_subaccount.yaml
@@ -0,0 +1,1171 @@
+Parameters:
+ CloudthreadStackToken:
+ Type: String
+ Default: foo
+ Description: DO NOT CHANGE! Token to validate this stack in Cloudthread's environment.
+ ExternalId:
+ Type: String
+ Default: bar
+ Description: DO NOT CHANGE! Token to validate Cloudthread in this environment.
+ ReportName:
+ Type: String
+ Default: foo
+ Description: New report name
+ ReportPrefix:
+ Type: String
+ Default: bar
+ Description: New report prefix
+Resources:
+ StackSet:
+ DependsOn:
+ - CloudthreadCostUsageRole
+ Type: AWS::CloudFormation::StackSet
+ Properties:
+ AutoDeployment:
+ Enabled: True
+ RetainStacksOnAccountRemoval: True
+ Capabilities:
+ - CAPABILITY_IAM
+ OperationPreferences:
+ MaxConcurrentCount: 50
+ PermissionModel: SERVICE_MANAGED
+ StackInstancesGroup:
+ - DeploymentTargets:
+ OrganizationalUnitIds:
+ - your root ID
+ Regions:
+ - us-east-1
+ StackSetName: CloudthreadCostOptimization
+ TemplateBody: !Sub
+ - |
+ AWSTemplateFormatVersion: "2010-09-09"
+ Resources:
+ CloudthreadCostOptimizationRole:
+ Type: "AWS::IAM::Role"
+ Properties:
+ AssumeRolePolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Principal:
+ AWS: bar
+ Action:
+ - "sts:AssumeRole"
+ Condition:
+ StringEquals:
+ sts:ExternalId: $${{ExternalId}}
+ Path: "/"
+ RolePoliciesListPermissions:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-list-permissions-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "iam:ListRolePolicies"
+ Resource:
+ - !GetAtt CloudthreadCostOptimizationRole.Arn
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesReadCloudwatch:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-read-cloudwatch-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "cloudwatch:Describe*"
+ - "cloudwatch:Get*"
+ - "cloudwatch:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectEC2Opportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-ec2-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "ec2:Describe*"
+ - "ec2:Get*"
+ - "ec2:List*"
+ - "ec2:Search*"
+ - "autoscaling:Describe*"
+ - "autoscaling:Get*"
+ - "autoscaling-plans:Describe*"
+ - "autoscaling-plans:Get*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "ec2:GetConsoleOutput"
+ - "ec2:GetPasswordData"
+ - "ec2:GetConsoleScreenshot"
+ - "ec2:GetInstanceUefiData"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectComputeOptimizerOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-computeoptimizer-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "compute-optimizer:Describe*"
+ - "compute-optimizer:Get*"
+ - "compute-optimizer:List*"
+ - "compute-optimizer:Export*"
+ - "compute-optimizer:Update*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectCostExplorerOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-costexplorer-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "ce:Describe*"
+ - "ce:Get*"
+ - "ce:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectRDSOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-rds-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "rds:Describe*"
+ - "rds:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectS3Opportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-s3-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "s3:Describe*"
+ - "s3:Get*"
+ - "s3:List*"
+ - "s3-outposts:Get*"
+ - "s3-outposts:List*"
+ - "s3-object-lambda:Get*"
+ - "s3-object-lambda:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "s3:GetObject*"
+ - "s3-object-lambda:GetObject*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectDynamoDBOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-dynamodb-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "dynamodb:Describe*"
+ - "dynamodb:Get*"
+ - "dynamodb:List*"
+ - "dax:Describe*"
+ - "dax:Get*"
+ - "dax:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "dynamodb:GetItem*"
+ - "dynamodb:GetRecords"
+ - "dynamodb:GetShardIterator"
+ - "dax:GetItem*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectLambdaOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-lambda-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "lambda:Get*"
+ - "lambda:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectStepFunctionOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-stepfunction-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "states:Describe*"
+ - "states:Get*"
+ - "states:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "states:ListExecutions"
+ - "states:DescribeExecution"
+ - "states:DescribeMapRun"
+ - "states:GetExecutionHistory"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectECSOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-ecs-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "ecs:Describe*"
+ - "ecs:Get*"
+ - "ecs:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectELBOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-elb-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "elasticloadbalancing:Describe*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectElasticCacheOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-ec-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "elasticache:Describe*"
+ - "elasticache:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectOpenSearchOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-opensearch-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "aoss:Describe*"
+ - "aoss:Get*"
+ - "aoss:List*"
+ - "es:Describe*"
+ - "es:Get*"
+ - "es:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectTrustedAdvisorOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-trustedadvisor-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "support:DescribeTrustedAdvisorCheckResult"
+ - "support:DescribeTrustedAdvisorChecks"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectCloudwatchOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-cloudwatch-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "cloudwatch:Describe*"
+ - "cloudwatch:Get*"
+ - "cloudwatch:List*"
+ - "logs:Describe*"
+ - "logs:Get*"
+ - "logs:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "logs:FilterLogEvents"
+ - "logs:GetLogEvents"
+ - "logs:GetQueryResults"
+ - "logs:GetLogRecord"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectEFSOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-efs-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "elasticfilesystem:Describe*"
+ - "elasticfilesystem:Get*"
+ - "elasticfilesystem:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectCloudtrailOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-cloudtrail-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "cloudtrail:Describe*"
+ - "cloudtrail:Get*"
+ - "cloudtrail:List*"
+ - "cloudtrail:Lookup*"
+ - "cloudtrail:StartQuery"
+ - "cloudtrail:CancelQuery"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectRoute53Opportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-route53-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "route53:Describe*"
+ - "route53:Get*"
+ - "route53:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectMWAAOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-mwaa-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "airflow:Describe*"
+ - "airflow:Get*"
+ - "airflow:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectRedshiftOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-redshift-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "redshift:Describe*"
+ - "redshift:Get*"
+ - "redshift:List*"
+ - "redshift-serverless:Describe*"
+ - "redshift-serverless:Get*"
+ - "redshift-serverless:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "redshift:ListSavedQueries"
+ - "redshift:DescribeHsmClientCertificates"
+ - "redshift:DescribeHsmClientCertificates"
+ - "redshift:DescribeSavedQueries"
+ - "redshift:DescribeQuery"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RegisterCostOptimizationRole:
+ DependsOn:
+ - CloudthreadCostOptimizationRole
+ - RolePoliciesListPermissions
+ - RolePoliciesReadCloudwatch
+ - RolePoliciesDetectEC2Opportunities
+ - RolePoliciesDetectComputeOptimizerOpportunities
+ - RolePoliciesDetectCostExplorerOpportunities
+ - RolePoliciesDetectRDSOpportunities
+ - RolePoliciesDetectS3Opportunities
+ - RolePoliciesDetectDynamoDBOpportunities
+ - RolePoliciesDetectLambdaOpportunities
+ - RolePoliciesDetectStepFunctionOpportunities
+ - RolePoliciesDetectECSOpportunities
+ - RolePoliciesDetectELBOpportunities
+ - RolePoliciesDetectElasticCacheOpportunities
+ - RolePoliciesDetectOpenSearchOpportunities
+ - RolePoliciesDetectTrustedAdvisorOpportunities
+ - RolePoliciesDetectCloudwatchOpportunities
+ - RolePoliciesDetectEFSOpportunities
+ - RolePoliciesDetectCloudtrailOpportunities
+ - RolePoliciesDetectRoute53Opportunities
+ - RolePoliciesDetectMWAAOpportunities
+ - RolePoliciesDetectRedshiftOpportunities
+ Type: Custom::RegisterRole
+ Properties:
+ ServiceToken: foo
+ AwsAccountId:
+ Ref: AWS::AccountId
+ RoleName:
+ Ref: CloudthreadCostOptimizationRole
+ RoleArn: !GetAtt CloudthreadCostOptimizationRole.Arn
+ RoleArnRoot: $${{RoleArnRoot}}
+ CloudthreadStackToken: $${{CloudthreadStackToken}}
+ CloudthreadStackType: cost-optimization
+ ExternalId: $${{ExternalId}}
+ - CloudthreadStackToken: !Ref CloudthreadStackToken
+ ExternalId: !Ref ExternalId
+ RoleArnRoot: !GetAtt CloudthreadCostUsageRole.Arn
+ CloudthreadCostUsageRole:
+ Type: "AWS::IAM::Role"
+ Properties:
+ AssumeRolePolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Principal:
+ AWS: bar
+ Action:
+ - "sts:AssumeRole"
+ Condition:
+ StringEquals:
+ sts:ExternalId:
+ Ref: ExternalId
+ Path: "/"
+ RolePoliciesDescribeAccountCU:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-describe-account-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "organizations:Describe*"
+ - "organizations:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostUsageRole"
+ RolePoliciesListPermissionsCU:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-list-permissions-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "iam:ListRolePolicies"
+ Resource:
+ - !GetAtt CloudthreadCostUsageRole.Arn
+ Roles:
+ - Ref: "CloudthreadCostUsageRole"
+ RolePoliciesCostExplorerCU:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-costexplorer-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "ce:Describe*"
+ - "ce:Get*"
+ - "ce:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostUsageRole"
+ CostUsageReportBucket:
+ Type: AWS::S3::Bucket
+ DeletionPolicy: Retain
+ Properties:
+ AccessControl: Private
+ PublicAccessBlockConfiguration:
+ BlockPublicAcls: True
+ BlockPublicPolicy: True
+ IgnorePublicAcls: True
+ RestrictPublicBuckets: True
+ BucketEncryption:
+ ServerSideEncryptionConfiguration:
+ - ServerSideEncryptionByDefault:
+ SSEAlgorithm: AES256
+ RolePoliciesCostUsageReportAccess:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-costandusagereport-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "cur:DescribeReportDefinitions"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostUsageRole"
+ RolePoliciesCostUsageReportBucketAccess:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-costandusagereportbucket-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "s3:*"
+ Resource:
+ - !GetAtt CostUsageReportBucket.Arn
+ - Effect: "Allow"
+ Action:
+ - "s3:*"
+ Resource:
+ Fn::Join:
+ - ""
+ - - "arn:aws:s3:::"
+ - Ref: CostUsageReportBucket
+ - "/*"
+ Roles:
+ - Ref: "CloudthreadCostUsageRole"
+ CostUsageReportBucketPolicy:
+ Type: AWS::S3::BucketPolicy
+ DeletionPolicy: Retain
+ Properties:
+ Bucket:
+ Ref: CostUsageReportBucket
+ PolicyDocument:
+ Version: 2012-10-17
+ Statement:
+ - Action:
+ - 's3:GetBucketAcl'
+ - 's3:GetBucketPolicy'
+ Effect: Allow
+ Resource: !Join
+ - ''
+ - - 'arn:aws:s3:::'
+ - !Ref CostUsageReportBucket
+ Principal:
+ Service: "billingreports.amazonaws.com"
+ - Action:
+ - 's3:PutObject'
+ Effect: Allow
+ Resource: !Join
+ - ''
+ - - 'arn:aws:s3:::'
+ - !Ref CostUsageReportBucket
+ - /*
+ Principal:
+ Service: "billingreports.amazonaws.com"
+ - Action:
+ - 's3:*'
+ Effect: "Deny"
+ Principal: "*"
+ Resource: !Join
+ - ''
+ - - 'arn:aws:s3:::'
+ - !Ref CostUsageReportBucket
+ - /*
+ Condition:
+ Bool:
+ aws:SecureTransport: "false"
+ CostUsageReport:
+ DependsOn:
+ - CostUsageReportBucket
+ Type: AWS::CUR::ReportDefinition
+ DeletionPolicy: Retain
+ Properties:
+ AdditionalSchemaElements:
+ - RESOURCES
+ Compression: Parquet
+ Format: Parquet
+ RefreshClosedReports: True
+ ReportName:
+ Ref: ReportName
+ ReportVersioning: OVERWRITE_REPORT
+ S3Bucket:
+ Ref: CostUsageReportBucket
+ S3Prefix:
+ Ref: ReportPrefix
+ S3Region:
+ Ref: AWS::Region
+ TimeUnit: HOURLY
+ RegisterCostUsageRole:
+ DependsOn:
+ - CloudthreadCostUsageRole
+ - RolePoliciesDescribeAccountCU
+ - RolePoliciesListPermissionsCU
+ - RolePoliciesCostExplorerCU
+ - CostUsageReportBucket
+ - RolePoliciesCostUsageReportAccess
+ - RolePoliciesCostUsageReportBucketAccess
+ - CostUsageReportBucketPolicy
+ - CostUsageReport
+ Type: Custom::RegisterRole
+ Properties:
+ ServiceToken: foo
+ AwsAccountId:
+ Ref: AWS::AccountId
+ RoleName:
+ Ref: CloudthreadCostUsageRole
+ RoleArn: !GetAtt CloudthreadCostUsageRole.Arn
+ CloudthreadStackToken:
+ Ref: CloudthreadStackToken
+ CloudthreadStackType: cost-and-usage
+ ExternalId:
+ Ref: ExternalId
+ CURReportName:
+ Ref: ReportName
+ CURReportPrefix:
+ Ref: ReportPrefix
+ CURS3Bucket:
+ Ref: CostUsageReportBucket
+ CloudthreadCostOptimizationRole:
+ Type: "AWS::IAM::Role"
+ Properties:
+ AssumeRolePolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Principal:
+ AWS: bar
+ Action:
+ - "sts:AssumeRole"
+ Condition:
+ StringEquals:
+ sts:ExternalId:
+ Ref: ExternalId
+ Path: "/"
+ RolePoliciesDescribeAccountCO:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-describe-account-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "organizations:Describe*"
+ - "organizations:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesListPermissionsCO:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-list-permissions-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "iam:ListRolePolicies"
+ Resource:
+ - !GetAtt CloudthreadCostOptimizationRole.Arn
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesReadCloudwatch:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-read-cloudwatch-access"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "cloudwatch:Describe*"
+ - "cloudwatch:Get*"
+ - "cloudwatch:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectEC2Opportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-ec2-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "ec2:Describe*"
+ - "ec2:Get*"
+ - "ec2:List*"
+ - "ec2:Search*"
+ - "autoscaling:Describe*"
+ - "autoscaling:Get*"
+ - "autoscaling-plans:Describe*"
+ - "autoscaling-plans:Get*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "ec2:GetConsoleOutput"
+ - "ec2:GetPasswordData"
+ - "ec2:GetConsoleScreenshot"
+ - "ec2:GetInstanceUefiData"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectComputeOptimizerOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-computeoptimizer-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "compute-optimizer:Describe*"
+ - "compute-optimizer:Get*"
+ - "compute-optimizer:List*"
+ - "compute-optimizer:Export*"
+ - "compute-optimizer:Update*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectCostExplorerOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-costexplorer-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "ce:Describe*"
+ - "ce:Get*"
+ - "ce:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectRDSOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-rds-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "rds:Describe*"
+ - "rds:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectS3Opportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-s3-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "s3:Describe*"
+ - "s3:Get*"
+ - "s3:List*"
+ - "s3-outposts:Get*"
+ - "s3-outposts:List*"
+ - "s3-object-lambda:Get*"
+ - "s3-object-lambda:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "s3:GetObject*"
+ - "s3-object-lambda:GetObject*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectDynamoDBOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-dynamodb-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "dynamodb:Describe*"
+ - "dynamodb:Get*"
+ - "dynamodb:List*"
+ - "dax:Describe*"
+ - "dax:Get*"
+ - "dax:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "dynamodb:GetItem*"
+ - "dynamodb:GetRecords"
+ - "dynamodb:GetShardIterator"
+ - "dax:GetItem*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectLambdaOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-lambda-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "lambda:Get*"
+ - "lambda:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectStepFunctionOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-stepfunction-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "states:Describe*"
+ - "states:Get*"
+ - "states:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "states:ListExecutions"
+ - "states:DescribeExecution"
+ - "states:DescribeMapRun"
+ - "states:GetExecutionHistory"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectECSOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-ecs-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "ecs:Describe*"
+ - "ecs:Get*"
+ - "ecs:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectELBOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-elb-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "elasticloadbalancing:Describe*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectElasticCacheOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-ec-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "elasticache:Describe*"
+ - "elasticache:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectOpenSearchOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-opensearch-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "aoss:Describe*"
+ - "aoss:Get*"
+ - "aoss:List*"
+ - "es:Describe*"
+ - "es:Get*"
+ - "es:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectTrustedAdvisorOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-trustedadvisor-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "support:DescribeTrustedAdvisorCheckResult"
+ - "support:DescribeTrustedAdvisorChecks"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectCloudwatchOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-cloudwatch-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "cloudwatch:Describe*"
+ - "cloudwatch:Get*"
+ - "cloudwatch:List*"
+ - "logs:Describe*"
+ - "logs:Get*"
+ - "logs:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "logs:FilterLogEvents"
+ - "logs:GetLogEvents"
+ - "logs:GetQueryResults"
+ - "logs:GetLogRecord"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectEFSOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-efs-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "elasticfilesystem:Describe*"
+ - "elasticfilesystem:Get*"
+ - "elasticfilesystem:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectCloudtrailOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-cloudtrail-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "cloudtrail:Describe*"
+ - "cloudtrail:Get*"
+ - "cloudtrail:List*"
+ - "cloudtrail:Lookup*"
+ - "cloudtrail:StartQuery"
+ - "cloudtrail:CancelQuery"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectRoute53Opportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-route53-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "route53:Describe*"
+ - "route53:Get*"
+ - "route53:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectMWAAOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-mwaa-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "airflow:Describe*"
+ - "airflow:Get*"
+ - "airflow:List*"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RolePoliciesDetectRedshiftOpportunities:
+ Type: "AWS::IAM::Policy"
+ Properties:
+ PolicyName: "cloudthread-detect-redshift-opportunities"
+ PolicyDocument:
+ Version: "2012-10-17"
+ Statement:
+ - Effect: "Allow"
+ Action:
+ - "redshift:Describe*"
+ - "redshift:Get*"
+ - "redshift:List*"
+ - "redshift-serverless:Describe*"
+ - "redshift-serverless:Get*"
+ - "redshift-serverless:List*"
+ Resource:
+ - "*"
+ - Effect: "Deny"
+ Action:
+ - "redshift:ListSavedQueries"
+ - "redshift:DescribeHsmClientCertificates"
+ - "redshift:DescribeHsmClientCertificates"
+ - "redshift:DescribeSavedQueries"
+ - "redshift:DescribeQuery"
+ Resource:
+ - "*"
+ Roles:
+ - Ref: "CloudthreadCostOptimizationRole"
+ RegisterCostOptimizationRole:
+ DependsOn:
+ - CloudthreadCostOptimizationRole
+ - RolePoliciesDescribeAccountCO
+ - RolePoliciesListPermissionsCO
+ - RolePoliciesReadCloudwatch
+ - RolePoliciesDetectEC2Opportunities
+ - RolePoliciesDetectComputeOptimizerOpportunities
+ - RolePoliciesDetectCostExplorerOpportunities
+ - RolePoliciesDetectRDSOpportunities
+ - RolePoliciesDetectS3Opportunities
+ - RolePoliciesDetectDynamoDBOpportunities
+ - RolePoliciesDetectLambdaOpportunities
+ - RolePoliciesDetectStepFunctionOpportunities
+ - RolePoliciesDetectECSOpportunities
+ - RolePoliciesDetectELBOpportunities
+ - RolePoliciesDetectElasticCacheOpportunities
+ - RolePoliciesDetectOpenSearchOpportunities
+ - RolePoliciesDetectTrustedAdvisorOpportunities
+ - RolePoliciesDetectCloudwatchOpportunities
+ - RolePoliciesDetectEFSOpportunities
+ - RolePoliciesDetectCloudtrailOpportunities
+ - RolePoliciesDetectRoute53Opportunities
+ - RolePoliciesDetectMWAAOpportunities
+ - RolePoliciesDetectRedshiftOpportunities
+ Type: Custom::RegisterRole
+ Properties:
+ ServiceToken: foo
+ AwsAccountId:
+ Ref: AWS::AccountId
+ RoleName:
+ Ref: CloudthreadCostOptimizationRole
+ RoleArn: !GetAtt CloudthreadCostOptimizationRole.Arn
+ CloudthreadStackToken:
+ Ref: CloudthreadStackToken
+ CloudthreadStackType: cost-optimization
+ ExternalId:
+ Ref: ExternalId
diff --git a/quick-start.md b/quick-start.md
index 1ca8db5..da0e370 100644
--- a/quick-start.md
+++ b/quick-start.md
@@ -2,40 +2,58 @@
## Setup
-In order to start with Cloudthread, follow these 2 steps:
+{% content-ref url="guides/onboarding/" %}
+[onboarding](guides/onboarding/)
+{% endcontent-ref %}
+
+### AWS
+
+1. Create an account at [app.cloudthread.io/sign-up](https://app.cloudthread.io/sign-up)
+2. Connect your AWS Management Account: [connecting-aws-account.md](guides/onboarding/connecting-aws-account.md "mention")
+ * Connect your AWS sub-accounts: [#aws](fundamentals/settings/data-collection.md#aws "mention")
+
+### GCP
1. Create an account at [app.cloudthread.io/sign-up](https://app.cloudthread.io/sign-up)
-2. Connect your AWS account: [connecting-aws-account.md](guides/connecting-aws-account.md "mention")
+2. Connect your GCP Billing Project: [connecting-gcp-billing-account.md](guides/onboarding/connecting-gcp-billing-account.md "mention")
## Getting Started
### Guides: Head-start
-Follow our handy guides to get started on the basics as quickly as possible:
+{% hint style="success" %}
+Follow our handy **guides** to get started on the basics as quickly as possible.
+{% endhint %}
-{% content-ref url="guides/creating-custom-cost-views.md" %}
-[creating-custom-cost-views.md](guides/creating-custom-cost-views.md)
+{% content-ref url="guides/monitoring-cloud-costs/creating-custom-cost-views.md" %}
+[creating-custom-cost-views.md](guides/monitoring-cloud-costs/creating-custom-cost-views.md)
{% endcontent-ref %}
-{% content-ref url="guides/creating-custom-unit-metrics.md" %}
-[creating-custom-unit-metrics.md](guides/creating-custom-unit-metrics.md)
+{% content-ref url="guides/monitoring-cloud-costs/creating-custom-unit-metrics.md" %}
+[creating-custom-unit-metrics.md](guides/monitoring-cloud-costs/creating-custom-unit-metrics.md)
{% endcontent-ref %}
-{% content-ref url="guides/setting-up-alerts-and-reports.md" %}
-[setting-up-alerts-and-reports.md](guides/setting-up-alerts-and-reports.md)
+{% content-ref url="guides/monitoring-cloud-costs/setting-up-alerts-and-reports.md" %}
+[setting-up-alerts-and-reports.md](guides/monitoring-cloud-costs/setting-up-alerts-and-reports.md)
{% endcontent-ref %}
-{% content-ref url="guides/performing-root-cause-analysis.md" %}
-[performing-root-cause-analysis.md](guides/performing-root-cause-analysis.md)
+{% content-ref url="guides/monitoring-cloud-costs/performing-root-cause-analysis.md" %}
+[performing-root-cause-analysis.md](guides/monitoring-cloud-costs/performing-root-cause-analysis.md)
{% endcontent-ref %}
-{% content-ref url="guides/managing-account-and-team.md" %}
-[managing-account-and-team.md](guides/managing-account-and-team.md)
+{% content-ref url="guides/onboarding/managing-account-and-team-1.md" %}
+[managing-account-and-team-1.md](guides/onboarding/managing-account-and-team-1.md)
{% endcontent-ref %}
### Fundamentals: Deep-dive
-Learn the fundamentals of Cloudthread to get a deeper understanding of our main features:
+{% hint style="success" %}
+Learn the fundamentals of Cloudthread to get a deeper understanding of our **main features.**
+{% endhint %}
+
+{% content-ref url="fundamentals/cost-savings/" %}
+[cost-savings](fundamentals/cost-savings/)
+{% endcontent-ref %}
{% content-ref url="fundamentals/cost-transparency/" %}
[cost-transparency](fundamentals/cost-transparency/)
@@ -45,10 +63,14 @@ Learn the fundamentals of Cloudthread to get a deeper understanding of our main
[unit-metrics](fundamentals/unit-metrics/)
{% endcontent-ref %}
+{% content-ref url="fundamentals/tag-assistant/" %}
+[tag-assistant](fundamentals/tag-assistant/)
+{% endcontent-ref %}
+
{% content-ref url="fundamentals/notifications/" %}
[notifications](fundamentals/notifications/)
{% endcontent-ref %}
-{% content-ref url="fundamentals/account-and-team-management.md" %}
-[account-and-team-management.md](fundamentals/account-and-team-management.md)
+{% content-ref url="fundamentals/settings/account-and-team-management.md" %}
+[account-and-team-management.md](fundamentals/settings/account-and-team-management.md)
{% endcontent-ref %}