All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.datadog.api.client.v1.model.SyntheticsMobileTestOptions Maven / Gradle / Ivy

/*
 * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
 * This product includes software developed at Datadog (https://www.datadoghq.com/).
 * Copyright 2019-Present Datadog, Inc.
 */

package com.datadog.api.client.v1.model;

import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/** Object describing the extra options for a Synthetic test. */
@JsonPropertyOrder({
  SyntheticsMobileTestOptions.JSON_PROPERTY_ALLOW_APPLICATION_CRASH,
  SyntheticsMobileTestOptions.JSON_PROPERTY_BINDINGS,
  SyntheticsMobileTestOptions.JSON_PROPERTY_CI,
  SyntheticsMobileTestOptions.JSON_PROPERTY_DEFAULT_STEP_TIMEOUT,
  SyntheticsMobileTestOptions.JSON_PROPERTY_DEVICE_IDS,
  SyntheticsMobileTestOptions.JSON_PROPERTY_DISABLE_AUTO_ACCEPT_ALERT,
  SyntheticsMobileTestOptions.JSON_PROPERTY_MIN_FAILURE_DURATION,
  SyntheticsMobileTestOptions.JSON_PROPERTY_MOBILE_APPLICATION,
  SyntheticsMobileTestOptions.JSON_PROPERTY_MONITOR_NAME,
  SyntheticsMobileTestOptions.JSON_PROPERTY_MONITOR_OPTIONS,
  SyntheticsMobileTestOptions.JSON_PROPERTY_MONITOR_PRIORITY,
  SyntheticsMobileTestOptions.JSON_PROPERTY_NO_SCREENSHOT,
  SyntheticsMobileTestOptions.JSON_PROPERTY_RESTRICTED_ROLES,
  SyntheticsMobileTestOptions.JSON_PROPERTY_RETRY,
  SyntheticsMobileTestOptions.JSON_PROPERTY_SCHEDULING,
  SyntheticsMobileTestOptions.JSON_PROPERTY_TICK_EVERY,
  SyntheticsMobileTestOptions.JSON_PROPERTY_VERBOSITY
})
@jakarta.annotation.Generated(
    value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
public class SyntheticsMobileTestOptions {
  @JsonIgnore public boolean unparsed = false;
  public static final String JSON_PROPERTY_ALLOW_APPLICATION_CRASH = "allowApplicationCrash";
  private Boolean allowApplicationCrash;

  public static final String JSON_PROPERTY_BINDINGS = "bindings";
  private List bindings = null;

  public static final String JSON_PROPERTY_CI = "ci";
  private SyntheticsTestCiOptions ci;

  public static final String JSON_PROPERTY_DEFAULT_STEP_TIMEOUT = "defaultStepTimeout";
  private Integer defaultStepTimeout;

  public static final String JSON_PROPERTY_DEVICE_IDS = "device_ids";
  private List deviceIds = new ArrayList<>();

  public static final String JSON_PROPERTY_DISABLE_AUTO_ACCEPT_ALERT = "disableAutoAcceptAlert";
  private Boolean disableAutoAcceptAlert;

  public static final String JSON_PROPERTY_MIN_FAILURE_DURATION = "min_failure_duration";
  private Long minFailureDuration;

  public static final String JSON_PROPERTY_MOBILE_APPLICATION = "mobileApplication";
  private SyntheticsMobileTestsMobileApplication mobileApplication;

  public static final String JSON_PROPERTY_MONITOR_NAME = "monitor_name";
  private String monitorName;

  public static final String JSON_PROPERTY_MONITOR_OPTIONS = "monitor_options";
  private SyntheticsTestOptionsMonitorOptions monitorOptions;

  public static final String JSON_PROPERTY_MONITOR_PRIORITY = "monitor_priority";
  private Integer monitorPriority;

  public static final String JSON_PROPERTY_NO_SCREENSHOT = "noScreenshot";
  private Boolean noScreenshot;

  public static final String JSON_PROPERTY_RESTRICTED_ROLES = "restricted_roles";
  private List restrictedRoles = null;

  public static final String JSON_PROPERTY_RETRY = "retry";
  private SyntheticsTestOptionsRetry retry;

  public static final String JSON_PROPERTY_SCHEDULING = "scheduling";
  private SyntheticsTestOptionsScheduling scheduling;

  public static final String JSON_PROPERTY_TICK_EVERY = "tick_every";
  private Long tickEvery;

  public static final String JSON_PROPERTY_VERBOSITY = "verbosity";
  private Integer verbosity;

  public SyntheticsMobileTestOptions() {}

  @JsonCreator
  public SyntheticsMobileTestOptions(
      @JsonProperty(required = true, value = JSON_PROPERTY_DEVICE_IDS) List deviceIds,
      @JsonProperty(required = true, value = JSON_PROPERTY_MOBILE_APPLICATION)
          SyntheticsMobileTestsMobileApplication mobileApplication,
      @JsonProperty(required = true, value = JSON_PROPERTY_TICK_EVERY) Long tickEvery) {
    this.deviceIds = deviceIds;
    this.mobileApplication = mobileApplication;
    this.unparsed |= mobileApplication.unparsed;
    this.tickEvery = tickEvery;
  }

  public SyntheticsMobileTestOptions allowApplicationCrash(Boolean allowApplicationCrash) {
    this.allowApplicationCrash = allowApplicationCrash;
    return this;
  }

  /**
   * A boolean to set if an application crash would mark the test as failed.
   *
   * @return allowApplicationCrash
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_ALLOW_APPLICATION_CRASH)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public Boolean getAllowApplicationCrash() {
    return allowApplicationCrash;
  }

  public void setAllowApplicationCrash(Boolean allowApplicationCrash) {
    this.allowApplicationCrash = allowApplicationCrash;
  }

  public SyntheticsMobileTestOptions bindings(
      List bindings) {
    this.bindings = bindings;
    for (SyntheticsTestRestrictionPolicyBinding item : bindings) {
      this.unparsed |= item.unparsed;
    }
    return this;
  }

  public SyntheticsMobileTestOptions addBindingsItem(
      SyntheticsTestRestrictionPolicyBinding bindingsItem) {
    if (this.bindings == null) {
      this.bindings = new ArrayList<>();
    }
    this.bindings.add(bindingsItem);
    this.unparsed |= bindingsItem.unparsed;
    return this;
  }

  /**
   * Array of bindings used for the mobile test.
   *
   * @return bindings
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_BINDINGS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public List getBindings() {
    return bindings;
  }

  public void setBindings(List bindings) {
    this.bindings = bindings;
  }

  public SyntheticsMobileTestOptions ci(SyntheticsTestCiOptions ci) {
    this.ci = ci;
    this.unparsed |= ci.unparsed;
    return this;
  }

  /**
   * CI/CD options for a Synthetic test.
   *
   * @return ci
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_CI)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public SyntheticsTestCiOptions getCi() {
    return ci;
  }

  public void setCi(SyntheticsTestCiOptions ci) {
    this.ci = ci;
  }

  public SyntheticsMobileTestOptions defaultStepTimeout(Integer defaultStepTimeout) {
    this.defaultStepTimeout = defaultStepTimeout;
    return this;
  }

  /**
   * The default timeout for steps in the test (in seconds). minimum: 1 maximum: 300
   *
   * @return defaultStepTimeout
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_DEFAULT_STEP_TIMEOUT)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public Integer getDefaultStepTimeout() {
    return defaultStepTimeout;
  }

  public void setDefaultStepTimeout(Integer defaultStepTimeout) {
    this.defaultStepTimeout = defaultStepTimeout;
  }

  public SyntheticsMobileTestOptions deviceIds(List deviceIds) {
    this.deviceIds = deviceIds;
    return this;
  }

  public SyntheticsMobileTestOptions addDeviceIdsItem(String deviceIdsItem) {
    this.deviceIds.add(deviceIdsItem);
    return this;
  }

  /**
   * For mobile test, array with the different device IDs used to run the test.
   *
   * @return deviceIds
   */
  @JsonProperty(JSON_PROPERTY_DEVICE_IDS)
  @JsonInclude(value = JsonInclude.Include.ALWAYS)
  public List getDeviceIds() {
    return deviceIds;
  }

  public void setDeviceIds(List deviceIds) {
    this.deviceIds = deviceIds;
  }

  public SyntheticsMobileTestOptions disableAutoAcceptAlert(Boolean disableAutoAcceptAlert) {
    this.disableAutoAcceptAlert = disableAutoAcceptAlert;
    return this;
  }

  /**
   * A boolean to disable auto accepting alerts.
   *
   * @return disableAutoAcceptAlert
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_DISABLE_AUTO_ACCEPT_ALERT)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public Boolean getDisableAutoAcceptAlert() {
    return disableAutoAcceptAlert;
  }

  public void setDisableAutoAcceptAlert(Boolean disableAutoAcceptAlert) {
    this.disableAutoAcceptAlert = disableAutoAcceptAlert;
  }

  public SyntheticsMobileTestOptions minFailureDuration(Long minFailureDuration) {
    this.minFailureDuration = minFailureDuration;
    return this;
  }

  /**
   * Minimum amount of time in failure required to trigger an alert. minimum: 0 maximum: 7200
   *
   * @return minFailureDuration
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_MIN_FAILURE_DURATION)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public Long getMinFailureDuration() {
    return minFailureDuration;
  }

  public void setMinFailureDuration(Long minFailureDuration) {
    this.minFailureDuration = minFailureDuration;
  }

  public SyntheticsMobileTestOptions mobileApplication(
      SyntheticsMobileTestsMobileApplication mobileApplication) {
    this.mobileApplication = mobileApplication;
    this.unparsed |= mobileApplication.unparsed;
    return this;
  }

  /**
   * Mobile application for mobile synthetics test.
   *
   * @return mobileApplication
   */
  @JsonProperty(JSON_PROPERTY_MOBILE_APPLICATION)
  @JsonInclude(value = JsonInclude.Include.ALWAYS)
  public SyntheticsMobileTestsMobileApplication getMobileApplication() {
    return mobileApplication;
  }

  public void setMobileApplication(SyntheticsMobileTestsMobileApplication mobileApplication) {
    this.mobileApplication = mobileApplication;
  }

  public SyntheticsMobileTestOptions monitorName(String monitorName) {
    this.monitorName = monitorName;
    return this;
  }

  /**
   * The monitor name is used for the alert title as well as for all monitor dashboard widgets and
   * SLOs.
   *
   * @return monitorName
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_MONITOR_NAME)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public String getMonitorName() {
    return monitorName;
  }

  public void setMonitorName(String monitorName) {
    this.monitorName = monitorName;
  }

  public SyntheticsMobileTestOptions monitorOptions(
      SyntheticsTestOptionsMonitorOptions monitorOptions) {
    this.monitorOptions = monitorOptions;
    this.unparsed |= monitorOptions.unparsed;
    return this;
  }

  /**
   * Object containing the options for a Synthetic test as a monitor (for example, renotification).
   *
   * @return monitorOptions
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_MONITOR_OPTIONS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public SyntheticsTestOptionsMonitorOptions getMonitorOptions() {
    return monitorOptions;
  }

  public void setMonitorOptions(SyntheticsTestOptionsMonitorOptions monitorOptions) {
    this.monitorOptions = monitorOptions;
  }

  public SyntheticsMobileTestOptions monitorPriority(Integer monitorPriority) {
    this.monitorPriority = monitorPriority;
    return this;
  }

  /**
   * Integer from 1 (high) to 5 (low) indicating alert severity. minimum: 1 maximum: 5
   *
   * @return monitorPriority
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_MONITOR_PRIORITY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public Integer getMonitorPriority() {
    return monitorPriority;
  }

  public void setMonitorPriority(Integer monitorPriority) {
    this.monitorPriority = monitorPriority;
  }

  public SyntheticsMobileTestOptions noScreenshot(Boolean noScreenshot) {
    this.noScreenshot = noScreenshot;
    return this;
  }

  /**
   * A boolean set to not take a screenshot for the step.
   *
   * @return noScreenshot
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_NO_SCREENSHOT)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public Boolean getNoScreenshot() {
    return noScreenshot;
  }

  public void setNoScreenshot(Boolean noScreenshot) {
    this.noScreenshot = noScreenshot;
  }

  public SyntheticsMobileTestOptions restrictedRoles(List restrictedRoles) {
    this.restrictedRoles = restrictedRoles;
    return this;
  }

  public SyntheticsMobileTestOptions addRestrictedRolesItem(String restrictedRolesItem) {
    if (this.restrictedRoles == null) {
      this.restrictedRoles = new ArrayList<>();
    }
    this.restrictedRoles.add(restrictedRolesItem);
    return this;
  }

  /**
   * A list of role identifiers that can be pulled from the Roles API, for restricting read and
   * write access.
   *
   * @return restrictedRoles
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_RESTRICTED_ROLES)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public List getRestrictedRoles() {
    return restrictedRoles;
  }

  public void setRestrictedRoles(List restrictedRoles) {
    this.restrictedRoles = restrictedRoles;
  }

  public SyntheticsMobileTestOptions retry(SyntheticsTestOptionsRetry retry) {
    this.retry = retry;
    this.unparsed |= retry.unparsed;
    return this;
  }

  /**
   * Object describing the retry strategy to apply to a Synthetic test.
   *
   * @return retry
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_RETRY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public SyntheticsTestOptionsRetry getRetry() {
    return retry;
  }

  public void setRetry(SyntheticsTestOptionsRetry retry) {
    this.retry = retry;
  }

  public SyntheticsMobileTestOptions scheduling(SyntheticsTestOptionsScheduling scheduling) {
    this.scheduling = scheduling;
    this.unparsed |= scheduling.unparsed;
    return this;
  }

  /**
   * Object containing timeframes and timezone used for advanced scheduling.
   *
   * @return scheduling
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_SCHEDULING)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public SyntheticsTestOptionsScheduling getScheduling() {
    return scheduling;
  }

  public void setScheduling(SyntheticsTestOptionsScheduling scheduling) {
    this.scheduling = scheduling;
  }

  public SyntheticsMobileTestOptions tickEvery(Long tickEvery) {
    this.tickEvery = tickEvery;
    return this;
  }

  /**
   * The frequency at which to run the Synthetic test (in seconds). minimum: 300 maximum: 604800
   *
   * @return tickEvery
   */
  @JsonProperty(JSON_PROPERTY_TICK_EVERY)
  @JsonInclude(value = JsonInclude.Include.ALWAYS)
  public Long getTickEvery() {
    return tickEvery;
  }

  public void setTickEvery(Long tickEvery) {
    this.tickEvery = tickEvery;
  }

  public SyntheticsMobileTestOptions verbosity(Integer verbosity) {
    this.verbosity = verbosity;
    return this;
  }

  /**
   * The level of verbosity for the mobile test. This field can not be set by a user. minimum: 0
   * maximum: 5
   *
   * @return verbosity
   */
  @jakarta.annotation.Nullable
  @JsonProperty(JSON_PROPERTY_VERBOSITY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public Integer getVerbosity() {
    return verbosity;
  }

  public void setVerbosity(Integer verbosity) {
    this.verbosity = verbosity;
  }

  /**
   * A container for additional, undeclared properties. This is a holder for any undeclared
   * properties as specified with the 'additionalProperties' keyword in the OAS document.
   */
  private Map additionalProperties;

  /**
   * Set the additional (undeclared) property with the specified name and value. If the property
   * does not already exist, create it otherwise replace it.
   *
   * @param key The arbitrary key to set
   * @param value The associated value
   * @return SyntheticsMobileTestOptions
   */
  @JsonAnySetter
  public SyntheticsMobileTestOptions putAdditionalProperty(String key, Object value) {
    if (this.additionalProperties == null) {
      this.additionalProperties = new HashMap();
    }
    this.additionalProperties.put(key, value);
    return this;
  }

  /**
   * Return the additional (undeclared) property.
   *
   * @return The additional properties
   */
  @JsonAnyGetter
  public Map getAdditionalProperties() {
    return additionalProperties;
  }

  /**
   * Return the additional (undeclared) property with the specified name.
   *
   * @param key The arbitrary key to get
   * @return The specific additional property for the given key
   */
  public Object getAdditionalProperty(String key) {
    if (this.additionalProperties == null) {
      return null;
    }
    return this.additionalProperties.get(key);
  }

  /** Return true if this SyntheticsMobileTestOptions object is equal to o. */
  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    SyntheticsMobileTestOptions syntheticsMobileTestOptions = (SyntheticsMobileTestOptions) o;
    return Objects.equals(
            this.allowApplicationCrash, syntheticsMobileTestOptions.allowApplicationCrash)
        && Objects.equals(this.bindings, syntheticsMobileTestOptions.bindings)
        && Objects.equals(this.ci, syntheticsMobileTestOptions.ci)
        && Objects.equals(this.defaultStepTimeout, syntheticsMobileTestOptions.defaultStepTimeout)
        && Objects.equals(this.deviceIds, syntheticsMobileTestOptions.deviceIds)
        && Objects.equals(
            this.disableAutoAcceptAlert, syntheticsMobileTestOptions.disableAutoAcceptAlert)
        && Objects.equals(this.minFailureDuration, syntheticsMobileTestOptions.minFailureDuration)
        && Objects.equals(this.mobileApplication, syntheticsMobileTestOptions.mobileApplication)
        && Objects.equals(this.monitorName, syntheticsMobileTestOptions.monitorName)
        && Objects.equals(this.monitorOptions, syntheticsMobileTestOptions.monitorOptions)
        && Objects.equals(this.monitorPriority, syntheticsMobileTestOptions.monitorPriority)
        && Objects.equals(this.noScreenshot, syntheticsMobileTestOptions.noScreenshot)
        && Objects.equals(this.restrictedRoles, syntheticsMobileTestOptions.restrictedRoles)
        && Objects.equals(this.retry, syntheticsMobileTestOptions.retry)
        && Objects.equals(this.scheduling, syntheticsMobileTestOptions.scheduling)
        && Objects.equals(this.tickEvery, syntheticsMobileTestOptions.tickEvery)
        && Objects.equals(this.verbosity, syntheticsMobileTestOptions.verbosity)
        && Objects.equals(
            this.additionalProperties, syntheticsMobileTestOptions.additionalProperties);
  }

  @Override
  public int hashCode() {
    return Objects.hash(
        allowApplicationCrash,
        bindings,
        ci,
        defaultStepTimeout,
        deviceIds,
        disableAutoAcceptAlert,
        minFailureDuration,
        mobileApplication,
        monitorName,
        monitorOptions,
        monitorPriority,
        noScreenshot,
        restrictedRoles,
        retry,
        scheduling,
        tickEvery,
        verbosity,
        additionalProperties);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class SyntheticsMobileTestOptions {\n");
    sb.append("    allowApplicationCrash: ")
        .append(toIndentedString(allowApplicationCrash))
        .append("\n");
    sb.append("    bindings: ").append(toIndentedString(bindings)).append("\n");
    sb.append("    ci: ").append(toIndentedString(ci)).append("\n");
    sb.append("    defaultStepTimeout: ").append(toIndentedString(defaultStepTimeout)).append("\n");
    sb.append("    deviceIds: ").append(toIndentedString(deviceIds)).append("\n");
    sb.append("    disableAutoAcceptAlert: ")
        .append(toIndentedString(disableAutoAcceptAlert))
        .append("\n");
    sb.append("    minFailureDuration: ").append(toIndentedString(minFailureDuration)).append("\n");
    sb.append("    mobileApplication: ").append(toIndentedString(mobileApplication)).append("\n");
    sb.append("    monitorName: ").append(toIndentedString(monitorName)).append("\n");
    sb.append("    monitorOptions: ").append(toIndentedString(monitorOptions)).append("\n");
    sb.append("    monitorPriority: ").append(toIndentedString(monitorPriority)).append("\n");
    sb.append("    noScreenshot: ").append(toIndentedString(noScreenshot)).append("\n");
    sb.append("    restrictedRoles: ").append(toIndentedString(restrictedRoles)).append("\n");
    sb.append("    retry: ").append(toIndentedString(retry)).append("\n");
    sb.append("    scheduling: ").append(toIndentedString(scheduling)).append("\n");
    sb.append("    tickEvery: ").append(toIndentedString(tickEvery)).append("\n");
    sb.append("    verbosity: ").append(toIndentedString(verbosity)).append("\n");
    sb.append("    additionalProperties: ")
        .append(toIndentedString(additionalProperties))
        .append("\n");
    sb.append('}');
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy