A collection of related resources. Compartments are a fundamental component of Oracle Cloud Infrastructure
for organizing and isolating your cloud resources. You use them to clearly separate resources for the purposes
of measuring usage and billing, access (through the use of IAM Service policies), and isolation (separating the
resources for one project or business unit from another). A common approach is to create a compartment for each
major part of your organization. For more information, see
[Overview of the IAM Service](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/overview.htm) and also
[Setting Up Your Tenancy](https://docs.us-phoenix-1.oraclecloud.com/Content/GSG/Concepts/settinguptenancy.htm).
To place a resource in a compartment, simply specify the compartment ID in the \"Create\" request object when
initially creating the resource. For example, to launch an instance into a particular compartment, specify
that compartment's OCID in the `LaunchInstance` request. You can't move an existing resource from one
compartment to another.
To use any of the API operations, you must be authorized in an IAM policy. If you're not authorized,
talk to an administrator. If you're an administrator who needs to write policies to give users access,
see [Getting Started with Policies](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/policygetstarted.htm).
Note: Objects should always be created or deserialized using the
Builder. This model distinguishes fields
that are
null because they are unset from fields that are explicitly set to
null. This is done in
the setter methods of the
Builder, which maintain a set of all explicitly set fields called
#__explicitlySet__. The
#hashCode() and
#equals(Object) methods are implemented to take
#__explicitlySet__ into account. The constructor, on the other hand, does not set
#__explicitlySet__(since the constructor cannot distinguish explicit
null from unset
null).