software.amazon.awscdk.regioninfo.package-info Maven / Gradle / Ivy
Show all versions of cdk-region-info Show documentation
/**
* AWS Region-Specific Information Directory
*
*
Usage
*
* Some information used in CDK Applications differs from one AWS region to
* another, such as service principals used in IAM policies, S3 static website
* endpoints, ...
*
*
The RegionInfo
class
*
* The library offers a simple interface to obtain region specific information in
* the form of the RegionInfo
class. This is the preferred way to interact with
* the regional information database:
*
*
* // Get the information for "eu-west-1":
* RegionInfo region = RegionInfo.get("eu-west-1");
*
* // Access attributes:
* region.getS3StaticWebsiteEndpoint();
*
*
* The RegionInfo
layer is built on top of the Low-Level API, which is described
* below and can be used to register additional data, including user-defined facts
* that are not available through the RegionInfo
interface.
*
*
Low-Level API
*
* This library offers a primitive database of such information so that CDK
* constructs can easily access regional information. The FactName
class provides
* a list of known fact names, which can then be used with the RegionInfo
to
* retrieve a particular value:
*
*
* String staticWebsite = Fact.find("ap-northeast-1", FactName.S3_STATIC_WEBSITE_ENDPOINT);
*
*
*
Supplying new or missing information
*
* As new regions are released, it might happen that a particular fact you need is
* missing from the library. In such cases, the Fact.register
method can be used
* to inject FactName into the database:
*
*
* public class MyFact implements IFact {
* public final Object region;
* public final Object name;
* public final Object value;
* }
*
* Fact.register(new MyFact());
*
*
*
Overriding incorrect information
*
* In the event information provided by the library is incorrect, it can be
* overridden using the same Fact.register
method demonstrated above, simply
* adding an extra boolean argument:
*
*
* public class MyFact implements IFact {
* public final Object region;
* public final Object name;
* public final Object value;
* }
*
* Fact.register(new MyFact(), true);
*
*
* If you happen to have stumbled upon incorrect data built into this library, it
* is always a good idea to report your findings in a GitHub issue, so we can fix
* it for everyone else!
*
*
*
* This module is part of the AWS Cloud Development Kit project.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
package software.amazon.awscdk.regioninfo;