Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
software.amazon.awssdk.services.applicationinsights.model.ApplicationComponent Maven / Gradle / Ivy
Go to download
The AWS Java SDK for Application Insights module holds the client classes that are used for
communicating with Application Insights.
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package software.amazon.awssdk.services.applicationinsights.model;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.traits.MapTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructMap;
import software.amazon.awssdk.core.util.SdkAutoConstructMap;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
* Describes a standalone resource or similarly grouped resources that the application is made up of.
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class ApplicationComponent implements SdkPojo, Serializable,
ToCopyableBuilder {
private static final SdkField COMPONENT_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ComponentName").getter(getter(ApplicationComponent::componentName))
.setter(setter(Builder::componentName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ComponentName").build()).build();
private static final SdkField COMPONENT_REMARKS_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ComponentRemarks").getter(getter(ApplicationComponent::componentRemarks))
.setter(setter(Builder::componentRemarks))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ComponentRemarks").build()).build();
private static final SdkField RESOURCE_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ResourceType").getter(getter(ApplicationComponent::resourceType)).setter(setter(Builder::resourceType))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ResourceType").build()).build();
private static final SdkField OS_TYPE_FIELD = SdkField. builder(MarshallingType.STRING).memberName("OsType")
.getter(getter(ApplicationComponent::osTypeAsString)).setter(setter(Builder::osType))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("OsType").build()).build();
private static final SdkField TIER_FIELD = SdkField. builder(MarshallingType.STRING).memberName("Tier")
.getter(getter(ApplicationComponent::tierAsString)).setter(setter(Builder::tier))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Tier").build()).build();
private static final SdkField MONITOR_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
.memberName("Monitor").getter(getter(ApplicationComponent::monitor)).setter(setter(Builder::monitor))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Monitor").build()).build();
private static final SdkField>> DETECTED_WORKLOAD_FIELD = SdkField
.>> builder(MarshallingType.MAP)
.memberName("DetectedWorkload")
.getter(getter(ApplicationComponent::detectedWorkloadAsStrings))
.setter(setter(Builder::detectedWorkloadWithStrings))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DetectedWorkload").build(),
MapTrait.builder()
.keyLocationName("key")
.valueLocationName("value")
.valueFieldInfo(
SdkField.> builder(MarshallingType.MAP)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("value").build(),
MapTrait.builder()
.keyLocationName("key")
.valueLocationName("value")
.valueFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder()
.location(MarshallLocation.PAYLOAD)
.locationName("value").build()).build())
.build()).build()).build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(COMPONENT_NAME_FIELD,
COMPONENT_REMARKS_FIELD, RESOURCE_TYPE_FIELD, OS_TYPE_FIELD, TIER_FIELD, MONITOR_FIELD, DETECTED_WORKLOAD_FIELD));
private static final long serialVersionUID = 1L;
private final String componentName;
private final String componentRemarks;
private final String resourceType;
private final String osType;
private final String tier;
private final Boolean monitor;
private final Map> detectedWorkload;
private ApplicationComponent(BuilderImpl builder) {
this.componentName = builder.componentName;
this.componentRemarks = builder.componentRemarks;
this.resourceType = builder.resourceType;
this.osType = builder.osType;
this.tier = builder.tier;
this.monitor = builder.monitor;
this.detectedWorkload = builder.detectedWorkload;
}
/**
*
* The name of the component.
*
*
* @return The name of the component.
*/
public String componentName() {
return componentName;
}
/**
*
* If logging is supported for the resource type, indicates whether the component has configured logs to be
* monitored.
*
*
* @return If logging is supported for the resource type, indicates whether the component has configured logs to be
* monitored.
*/
public String componentRemarks() {
return componentRemarks;
}
/**
*
* The resource type. Supported resource types include EC2 instances, Auto Scaling group, Classic ELB, Application
* ELB, and SQS Queue.
*
*
* @return The resource type. Supported resource types include EC2 instances, Auto Scaling group, Classic ELB,
* Application ELB, and SQS Queue.
*/
public String resourceType() {
return resourceType;
}
/**
*
* The operating system of the component.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #osType} will
* return {@link OsType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #osTypeAsString}.
*
*
* @return The operating system of the component.
* @see OsType
*/
public OsType osType() {
return OsType.fromValue(osType);
}
/**
*
* The operating system of the component.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #osType} will
* return {@link OsType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #osTypeAsString}.
*
*
* @return The operating system of the component.
* @see OsType
*/
public String osTypeAsString() {
return osType;
}
/**
*
* The stack tier of the application component.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #tier} will return
* {@link Tier#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #tierAsString}.
*
*
* @return The stack tier of the application component.
* @see Tier
*/
public Tier tier() {
return Tier.fromValue(tier);
}
/**
*
* The stack tier of the application component.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #tier} will return
* {@link Tier#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #tierAsString}.
*
*
* @return The stack tier of the application component.
* @see Tier
*/
public String tierAsString() {
return tier;
}
/**
*
* Indicates whether the application component is monitored.
*
*
* @return Indicates whether the application component is monitored.
*/
public Boolean monitor() {
return monitor;
}
/**
*
* Workloads detected in the application component.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* You can use {@link #hasDetectedWorkload()} to see if a value was sent in this field.
*
*
* @return Workloads detected in the application component.
*/
public Map> detectedWorkload() {
return DetectedWorkloadCopier.copyStringToEnum(detectedWorkload);
}
/**
* Returns true if the DetectedWorkload property was specified by the sender (it may be empty), or false if the
* sender did not specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS
* service.
*/
public boolean hasDetectedWorkload() {
return detectedWorkload != null && !(detectedWorkload instanceof SdkAutoConstructMap);
}
/**
*
* Workloads detected in the application component.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* You can use {@link #hasDetectedWorkload()} to see if a value was sent in this field.
*
*
* @return Workloads detected in the application component.
*/
public Map> detectedWorkloadAsStrings() {
return detectedWorkload;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(componentName());
hashCode = 31 * hashCode + Objects.hashCode(componentRemarks());
hashCode = 31 * hashCode + Objects.hashCode(resourceType());
hashCode = 31 * hashCode + Objects.hashCode(osTypeAsString());
hashCode = 31 * hashCode + Objects.hashCode(tierAsString());
hashCode = 31 * hashCode + Objects.hashCode(monitor());
hashCode = 31 * hashCode + Objects.hashCode(hasDetectedWorkload() ? detectedWorkloadAsStrings() : null);
return hashCode;
}
@Override
public boolean equals(Object obj) {
return equalsBySdkFields(obj);
}
@Override
public boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof ApplicationComponent)) {
return false;
}
ApplicationComponent other = (ApplicationComponent) obj;
return Objects.equals(componentName(), other.componentName())
&& Objects.equals(componentRemarks(), other.componentRemarks())
&& Objects.equals(resourceType(), other.resourceType())
&& Objects.equals(osTypeAsString(), other.osTypeAsString())
&& Objects.equals(tierAsString(), other.tierAsString()) && Objects.equals(monitor(), other.monitor())
&& hasDetectedWorkload() == other.hasDetectedWorkload()
&& Objects.equals(detectedWorkloadAsStrings(), other.detectedWorkloadAsStrings());
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*/
@Override
public String toString() {
return ToString.builder("ApplicationComponent").add("ComponentName", componentName())
.add("ComponentRemarks", componentRemarks()).add("ResourceType", resourceType()).add("OsType", osTypeAsString())
.add("Tier", tierAsString()).add("Monitor", monitor())
.add("DetectedWorkload", hasDetectedWorkload() ? detectedWorkloadAsStrings() : null).build();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "ComponentName":
return Optional.ofNullable(clazz.cast(componentName()));
case "ComponentRemarks":
return Optional.ofNullable(clazz.cast(componentRemarks()));
case "ResourceType":
return Optional.ofNullable(clazz.cast(resourceType()));
case "OsType":
return Optional.ofNullable(clazz.cast(osTypeAsString()));
case "Tier":
return Optional.ofNullable(clazz.cast(tierAsString()));
case "Monitor":
return Optional.ofNullable(clazz.cast(monitor()));
case "DetectedWorkload":
return Optional.ofNullable(clazz.cast(detectedWorkloadAsStrings()));
default:
return Optional.empty();
}
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
private static Function getter(Function g) {
return obj -> g.apply((ApplicationComponent) obj);
}
private static BiConsumer setter(BiConsumer s) {
return (obj, val) -> s.accept((Builder) obj, val);
}
public interface Builder extends SdkPojo, CopyableBuilder {
/**
*
* The name of the component.
*
*
* @param componentName
* The name of the component.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder componentName(String componentName);
/**
*
* If logging is supported for the resource type, indicates whether the component has configured logs to be
* monitored.
*
*
* @param componentRemarks
* If logging is supported for the resource type, indicates whether the component has configured logs to
* be monitored.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder componentRemarks(String componentRemarks);
/**
*
* The resource type. Supported resource types include EC2 instances, Auto Scaling group, Classic ELB,
* Application ELB, and SQS Queue.
*
*
* @param resourceType
* The resource type. Supported resource types include EC2 instances, Auto Scaling group, Classic ELB,
* Application ELB, and SQS Queue.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder resourceType(String resourceType);
/**
*
* The operating system of the component.
*
*
* @param osType
* The operating system of the component.
* @see OsType
* @return Returns a reference to this object so that method calls can be chained together.
* @see OsType
*/
Builder osType(String osType);
/**
*
* The operating system of the component.
*
*
* @param osType
* The operating system of the component.
* @see OsType
* @return Returns a reference to this object so that method calls can be chained together.
* @see OsType
*/
Builder osType(OsType osType);
/**
*
* The stack tier of the application component.
*
*
* @param tier
* The stack tier of the application component.
* @see Tier
* @return Returns a reference to this object so that method calls can be chained together.
* @see Tier
*/
Builder tier(String tier);
/**
*
* The stack tier of the application component.
*
*
* @param tier
* The stack tier of the application component.
* @see Tier
* @return Returns a reference to this object so that method calls can be chained together.
* @see Tier
*/
Builder tier(Tier tier);
/**
*
* Indicates whether the application component is monitored.
*
*
* @param monitor
* Indicates whether the application component is monitored.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder monitor(Boolean monitor);
/**
*
* Workloads detected in the application component.
*
*
* @param detectedWorkload
* Workloads detected in the application component.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder detectedWorkloadWithStrings(Map> detectedWorkload);
/**
*
* Workloads detected in the application component.
*
*
* @param detectedWorkload
* Workloads detected in the application component.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder detectedWorkload(Map> detectedWorkload);
}
static final class BuilderImpl implements Builder {
private String componentName;
private String componentRemarks;
private String resourceType;
private String osType;
private String tier;
private Boolean monitor;
private Map> detectedWorkload = DefaultSdkAutoConstructMap.getInstance();
private BuilderImpl() {
}
private BuilderImpl(ApplicationComponent model) {
componentName(model.componentName);
componentRemarks(model.componentRemarks);
resourceType(model.resourceType);
osType(model.osType);
tier(model.tier);
monitor(model.monitor);
detectedWorkloadWithStrings(model.detectedWorkload);
}
public final String getComponentName() {
return componentName;
}
@Override
public final Builder componentName(String componentName) {
this.componentName = componentName;
return this;
}
public final void setComponentName(String componentName) {
this.componentName = componentName;
}
public final String getComponentRemarks() {
return componentRemarks;
}
@Override
public final Builder componentRemarks(String componentRemarks) {
this.componentRemarks = componentRemarks;
return this;
}
public final void setComponentRemarks(String componentRemarks) {
this.componentRemarks = componentRemarks;
}
public final String getResourceType() {
return resourceType;
}
@Override
public final Builder resourceType(String resourceType) {
this.resourceType = resourceType;
return this;
}
public final void setResourceType(String resourceType) {
this.resourceType = resourceType;
}
public final String getOsType() {
return osType;
}
@Override
public final Builder osType(String osType) {
this.osType = osType;
return this;
}
@Override
public final Builder osType(OsType osType) {
this.osType(osType == null ? null : osType.toString());
return this;
}
public final void setOsType(String osType) {
this.osType = osType;
}
public final String getTier() {
return tier;
}
@Override
public final Builder tier(String tier) {
this.tier = tier;
return this;
}
@Override
public final Builder tier(Tier tier) {
this.tier(tier == null ? null : tier.toString());
return this;
}
public final void setTier(String tier) {
this.tier = tier;
}
public final Boolean getMonitor() {
return monitor;
}
@Override
public final Builder monitor(Boolean monitor) {
this.monitor = monitor;
return this;
}
public final void setMonitor(Boolean monitor) {
this.monitor = monitor;
}
public final Map> getDetectedWorkload() {
if (detectedWorkload instanceof SdkAutoConstructMap) {
return null;
}
return detectedWorkload;
}
@Override
public final Builder detectedWorkloadWithStrings(Map> detectedWorkload) {
this.detectedWorkload = DetectedWorkloadCopier.copy(detectedWorkload);
return this;
}
@Override
public final Builder detectedWorkload(Map> detectedWorkload) {
this.detectedWorkload = DetectedWorkloadCopier.copyEnumToString(detectedWorkload);
return this;
}
public final void setDetectedWorkload(Map> detectedWorkload) {
this.detectedWorkload = DetectedWorkloadCopier.copy(detectedWorkload);
}
@Override
public ApplicationComponent build() {
return new ApplicationComponent(this);
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
}
}