docs
reference
services
tessl install tessl/maven-com-pulumi--aws@7.16.0Pulumi Java SDK for AWS providing strongly-typed Infrastructure-as-Code for 227 AWS service packages including compute, storage, databases, networking, security, analytics, machine learning, and more.
This document covers Pulumi AWS Java SDK management and monitoring services for observability, configuration, and governance.
Amazon CloudWatch provides monitoring and observability.
import com.pulumi.aws.cloudwatch.MetricAlarm;
import com.pulumi.aws.cloudwatch.MetricAlarmArgs;
import com.pulumi.aws.cloudwatch.Dashboard;
import com.pulumi.aws.cloudwatch.DashboardArgs;
import com.pulumi.aws.cloudwatch.LogGroup;
import com.pulumi.aws.cloudwatch.LogGroupArgs;
import com.pulumi.aws.cloudwatch.LogStream;
import com.pulumi.aws.cloudwatch.LogStreamArgs;
import com.pulumi.aws.cloudwatch.EventRule;
import com.pulumi.aws.cloudwatch.EventRuleArgs;
import com.pulumi.aws.cloudwatch.EventTarget;
import com.pulumi.aws.cloudwatch.EventTargetArgs;
import com.pulumi.aws.cloudwatch.CompositeAlarm;
import com.pulumi.aws.cloudwatch.CompositeAlarmArgs;@ResourceType(type="aws:cloudwatch/metricAlarm:MetricAlarm")
public class MetricAlarm extends com.pulumi.resources.CustomResource {
public MetricAlarm(String name, MetricAlarmArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> alarmName();
public Output<String> comparisonOperator();
public Output<Integer> evaluationPeriods();
public Output<Optional<String>> metricName();
public Output<Optional<String>> namespace();
public Output<Optional<Integer>> period();
public Output<Optional<String>> statistic();
public Output<Double> threshold();
public Output<Optional<List<String>>> alarmActions();
public Output<Optional<String>> alarmDescription();
public Output<Optional<List<MetricAlarmMetricQuery>>> metricQueries();
public Output<Optional<Map<String, String>>> tags();
}
public class MetricAlarmArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder alarmName(Output<String> alarmName);
public Builder comparisonOperator(Output<String> comparisonOperator);
public Builder evaluationPeriods(Output<Integer> evaluationPeriods);
public Builder metricName(Output<String> metricName);
public Builder namespace(Output<String> namespace);
public Builder period(Output<Integer> period);
public Builder statistic(Output<String> statistic);
public Builder threshold(Output<Double> threshold);
public Builder alarmActions(Output<List<String>> alarmActions);
public Builder alarmDescription(Output<String> alarmDescription);
public Builder metricQueries(Output<List<MetricAlarmMetricQueryArgs>> metricQueries);
public Builder tags(Output<Map<String, String>> tags);
public MetricAlarmArgs build();
}
}@ResourceType(type="aws:cloudwatch/logGroup:LogGroup")
public class LogGroup extends com.pulumi.resources.CustomResource {
public LogGroup(String name, LogGroupArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<Optional<String>> kmsKeyId();
public Output<Optional<Integer>> retentionInDays();
public Output<Optional<Boolean>> skipDestroy();
public Output<Optional<Map<String, String>>> tags();
}
public class LogGroupArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder retentionInDays(Output<Integer> retentionInDays);
public Builder kmsKeyId(Output<String> kmsKeyId);
public Builder skipDestroy(Output<Boolean> skipDestroy);
public Builder tags(Output<Map<String, String>> tags);
public LogGroupArgs build();
}
}@ResourceType(type="aws:cloudwatch/dashboard:Dashboard")
public class Dashboard extends com.pulumi.resources.CustomResource {
public Dashboard(String name, DashboardArgs args);
public Output<String> id();
public Output<String> dashboardArn();
public Output<String> dashboardName();
public Output<String> dashboardBody();
}
public class DashboardArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder dashboardName(Output<String> dashboardName);
public Builder dashboardBody(Output<String> dashboardBody);
public DashboardArgs build();
}
}AWS Systems Manager provides operational management.
import com.pulumi.aws.ssm.Parameter;
import com.pulumi.aws.ssm.ParameterArgs;
import com.pulumi.aws.ssm.Document;
import com.pulumi.aws.ssm.DocumentArgs;
import com.pulumi.aws.ssm.MaintenanceWindow;
import com.pulumi.aws.ssm.MaintenanceWindowArgs;
import com.pulumi.aws.ssm.PatchBaseline;
import com.pulumi.aws.ssm.PatchBaselineArgs;
import com.pulumi.aws.ssm.Association;
import com.pulumi.aws.ssm.AssociationArgs;@ResourceType(type="aws:ssm/parameter:Parameter")
public class Parameter extends com.pulumi.resources.CustomResource {
public Parameter(String name, ParameterArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<String> type();
public Output<String> value();
public Output<Optional<String>> description();
public Output<Optional<String>> keyId();
public Output<Optional<Integer>> tier();
public Output<Optional<Map<String, String>>> tags();
}
public class ParameterArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder type(Output<String> type);
public Builder value(Output<String> value);
public Builder description(Output<String> description);
public Builder keyId(Output<String> keyId);
public Builder tier(Output<String> tier);
public Builder tags(Output<Map<String, String>> tags);
public ParameterArgs build();
}
}@ResourceType(type="aws:ssm/document:Document")
public class Document extends com.pulumi.resources.CustomResource {
public Document(String name, DocumentArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<String> documentType();
public Output<String> content();
public Output<Optional<String>> documentFormat();
public Output<Optional<String>> targetType();
public Output<Optional<String>> versionName();
public Output<Optional<Map<String, String>>> tags();
}
public class DocumentArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder documentType(Output<String> documentType);
public Builder content(Output<String> content);
public Builder documentFormat(Output<String> documentFormat);
public Builder targetType(Output<String> targetType);
public Builder versionName(Output<String> versionName);
public Builder tags(Output<Map<String, String>> tags);
public DocumentArgs build();
}
}AWS CloudTrail provides API logging.
import com.pulumi.aws.cloudtrail.Trail;
import com.pulumi.aws.cloudtrail.TrailArgs;
import com.pulumi.aws.cloudtrail.EventDataStore;
import com.pulumi.aws.cloudtrail.EventDataStoreArgs;@ResourceType(type="aws:cloudtrail/trail:Trail")
public class Trail extends com.pulumi.resources.CustomResource {
public Trail(String name, TrailArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<String> s3BucketName();
public Output<Optional<Boolean>> enableLogFileValidation();
public Output<Optional<Boolean>> includeGlobalServiceEvents();
public Output<Optional<Boolean>> isMultiRegionTrail();
public Output<Optional<Boolean>> isOrganizationTrail();
public Output<Optional<String>> kmsKeyId();
public Output<Optional<Map<String, String>>> tags();
}
public class TrailArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder s3BucketName(Output<String> s3BucketName);
public Builder enableLogFileValidation(Output<Boolean> enableLogFileValidation);
public Builder includeGlobalServiceEvents(Output<Boolean> includeGlobalServiceEvents);
public Builder isMultiRegionTrail(Output<Boolean> isMultiRegionTrail);
public Builder isOrganizationTrail(Output<Boolean> isOrganizationTrail);
public Builder kmsKeyId(Output<String> kmsKeyId);
public Builder tags(Output<Map<String, String>> tags);
public TrailArgs build();
}
}AWS Config tracks resource configuration and compliance.
import com.pulumi.aws.cfg.Recorder;
import com.pulumi.aws.cfg.RecorderArgs;
import com.pulumi.aws.cfg.DeliveryChannel;
import com.pulumi.aws.cfg.DeliveryChannelArgs;
import com.pulumi.aws.cfg.Rule;
import com.pulumi.aws.cfg.RuleArgs;
import com.pulumi.aws.cfg.ConformancePack;
import com.pulumi.aws.cfg.ConformancePackArgs;@ResourceType(type="aws:cfg/rule:Rule")
public class Rule extends com.pulumi.resources.CustomResource {
public Rule(String name, RuleArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<RuleSource> source();
public Output<Optional<String>> description();
public Output<Optional<String>> inputParameters();
public Output<Optional<String>> maximumExecutionFrequency();
public Output<Optional<RuleScope>> scope();
public Output<Optional<Map<String, String>>> tags();
}
public class RuleArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder source(Output<RuleSourceArgs> source);
public Builder description(Output<String> description);
public Builder inputParameters(Output<String> inputParameters);
public Builder maximumExecutionFrequency(Output<String> maximumExecutionFrequency);
public Builder scope(Output<RuleScopeArgs> scope);
public Builder tags(Output<Map<String, String>> tags);
public RuleArgs build();
}
}AWS Organizations provides multi-account management.
import com.pulumi.aws.organizations.Organization;
import com.pulumi.aws.organizations.OrganizationArgs;
import com.pulumi.aws.organizations.Account;
import com.pulumi.aws.organizations.AccountArgs;
import com.pulumi.aws.organizations.OrganizationalUnit;
import com.pulumi.aws.organizations.OrganizationalUnitArgs;
import com.pulumi.aws.organizations.Policy;
import com.pulumi.aws.organizations.PolicyArgs;
import com.pulumi.aws.organizations.PolicyAttachment;
import com.pulumi.aws.organizations.PolicyAttachmentArgs;@ResourceType(type="aws:organizations/organization:Organization")
public class Organization extends com.pulumi.resources.CustomResource {
public Organization(String name);
public Output<String> id();
public Output<String> arn();
public Output<String> masterAccountArn();
public Output<String> masterAccountEmail();
public Output<String> masterAccountId();
public Output<List<OrganizationAccount>> accounts();
public Output<List<String>> awsServiceAccessPrincipals();
public Output<List<String>> enabledPolicyTypes();
public Output<List<String>> featureSet();
public Output<List<OrganizationRootsItem>> roots();
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.cloudwatch.*;
import java.util.List;
import java.util.Map;
public class MonitoringExample {
public static void main(String[] args) {
Pulumi.run(MonitoringExample::stack);
}
public static void stack(Context ctx) {
// Create Log Group
var logGroup = new LogGroup("appLogs", LogGroupArgs.builder()
.name("/aws/application/myapp")
.retentionInDays(7)
.tags(Map.of("Name", "app-logs"))
.build());
// Create Metric Alarm
var cpuAlarm = new MetricAlarm("cpuAlarm", MetricAlarmArgs.builder()
.alarmName("high-cpu-usage")
.comparisonOperator("GreaterThanThreshold")
.evaluationPeriods(2)
.metricName("CPUUtilization")
.namespace("AWS/EC2")
.period(300)
.statistic("Average")
.threshold(80.0)
.alarmDescription("Alert when CPU exceeds 80%")
.alarmActions(List.of("arn:aws:sns:us-west-2:123456789012:alerts"))
.build());
// Create Dashboard
var dashboard = new Dashboard("appDashboard", DashboardArgs.builder()
.dashboardName("application-dashboard")
.dashboardBody("""
{
"widgets": [{
"type": "metric",
"properties": {
"metrics": [
["AWS/EC2", "CPUUtilization"]
],
"period": 300,
"stat": "Average",
"region": "us-west-2",
"title": "CPU Utilization"
}
}]
}
""")
.build());
ctx.export("logGroupName", logGroup.name());
ctx.export("alarmName", cpuAlarm.alarmName());
}
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.ssm.*;
import java.util.Map;
public class SsmExample {
public static void main(String[] args) {
Pulumi.run(SsmExample::stack);
}
public static void stack(Context ctx) {
// Create String Parameter
var apiUrl = new Parameter("apiUrl", ParameterArgs.builder()
.name("/myapp/api/url")
.type("String")
.value("https://api.example.com")
.description("API endpoint URL")
.tags(Map.of("Environment", "production"))
.build());
// Create SecureString Parameter
var dbPassword = new Parameter("dbPassword", ParameterArgs.builder()
.name("/myapp/database/password")
.type("SecureString")
.value("super-secret-password")
.description("Database password")
.keyId("alias/aws/ssm")
.tier("Standard")
.tags(Map.of("Environment", "production"))
.build());
ctx.export("apiUrlParam", apiUrl.name());
ctx.export("dbPasswordParam", dbPassword.name());
}
}