text: /**
   * Copyright (c) Microsoft Corporation. All rights reserved.
   * Licensed under the MIT License. See License.txt in the project root for
   * license information.
   *
   * Code generated by Microsoft (R) AutoRest Code Generator.
   */
  
  package com.microsoft.azure.management.network.v2017_10_01;
  
  import java.util.List;
  import com.microsoft.azure.SubResource;
  import com.fasterxml.jackson.annotation.JsonProperty;
  import com.microsoft.rest.serializer.JsonFlatten;
  
  /**
   * Path rule of URL path map of an application gateway.
   */
  @JsonFlatten
  public class ApplicationGatewayPathRule extends SubResource {
      /**
       * Path rules of URL path map.
       */
      @JsonProperty(value = "properties.paths")
      private List<String> paths;
  
      /**
       * Backend address pool resource of URL path map path rule.
       */
      @JsonProperty(value = "properties.backendAddressPool")
      private SubResource backendAddressPool;
  
      /**
       * Backend http settings resource of URL path map path rule.
       */
      @JsonProperty(value = "properties.backendHttpSettings")
      private SubResource backendHttpSettings;
  
      /**
       * Redirect configuration resource of URL path map path rule.
       */
      @JsonProperty(value = "properties.redirectConfiguration")
      private SubResource redirectConfiguration;
  
      /**
       * Path rule of URL path map resource. Possible values are: 'Updating',
       * 'Deleting', and 'Failed'.
       */
      @JsonProperty(value = "properties.provisioningState")
      private String provisioningState;
  
      /**
       * Name of the resource that is unique within a resource group. This name
       * can be used to access the resource.
       */
      @JsonProperty(value = "name")
      private String name;
  
      /**
       * A unique read-only string that changes whenever the resource is updated.
       */
      @JsonProperty(value = "etag")
      private String etag;
  
      /**
       * Type of the resource.
       */
      @JsonProperty(value = "type")
      private String type;
  
      /**
       * Get path rules of URL path map.
       *
       * @return the paths value
       */
      public List<String> paths() {
          return this.paths;
      }
  
      /**
       * Set path rules of URL path map.
       *
       * @param paths the paths value to set
       * @return the ApplicationGatewayPathRule object itself.
       */
      public ApplicationGatewayPathRule withPaths(List<String> paths) {
          this.paths = paths;
          return this;
      }
  
      /**
       * Get backend address pool resource of URL path map path rule.
       *
       * @return the backendAddressPool value
       */
      public SubResource backendAddressPool() {
          return this.backendAddressPool;
      }
  
      /**
       * Set backend address pool resource of URL path map path rule.
       *
       * @param backendAddressPool the backendAddressPool value to set
       * @return the ApplicationGatewayPathRule object itself.
       */
      public ApplicationGatewayPathRule withBackendAddressPool(SubResource backendAddressPool) {
          this.backendAddressPool = backendAddressPool;
          return this;
      }
  
      /**
       * Get backend http settings resource of URL path map path rule.
       *
       * @return the backendHttpSettings value
       */
      public SubResource backendHttpSettings() {
          return this.backendHttpSettings;
      }
  
      /**
       * Set backend http settings resource of URL path map path rule.
       *
       * @param backendHttpSettings the backendHttpSettings value to set
       * @return the ApplicationGatewayPathRule object itself.
       */
      public ApplicationGatewayPathRule withBackendHttpSettings(SubResource backendHttpSettings) {
          this.backendHttpSettings = backendHttpSettings;
          return this;
      }
  
      /**
       * Get redirect configuration resource of URL path map path rule.
       *
       * @return the redirectConfiguration value
       */
      public SubResource redirectConfiguration() {
          return this.redirectConfiguration;
      }
  
      /**
       * Set redirect configuration resource of URL path map path rule.
       *
       * @param redirectConfiguration the redirectConfiguration value to set
       * @return the ApplicationGatewayPathRule object itself.
       */
      public ApplicationGatewayPathRule withRedirectConfiguration(SubResource redirectConfiguration) {
          this.redirectConfiguration = redirectConfiguration;
          return this;
      }
  
      /**
       * Get path rule of URL path map resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
       *
       * @return the provisioningState value
       */
      public String provisioningState() {
          return this.provisioningState;
      }
  
      /**
       * Set path rule of URL path map resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
       *
       * @param provisioningState the provisioningState value to set
       * @return the ApplicationGatewayPathRule object itself.
       */
      public ApplicationGatewayPathRule withProvisioningState(String provisioningState) {
          this.provisioningState = provisioningState;
          return this;
      }
  
      /**
       * Get name of the resource that is unique within a resource group. This name can be used to access the resource.
       *
       * @return the name value
       */
      public String name() {
          return this.name;
      }
  
      /**
       * Set name of the resource that is unique within a resource group. This name can be used to access the resource.
       *
       * @param name the name value to set
       * @return the ApplicationGatewayPathRule object itself.
       */
      public ApplicationGatewayPathRule withName(String name) {
          this.name = name;
          return this;
      }
  
      /**
       * Get a unique read-only string that changes whenever the resource is updated.
       *
       * @return the etag value
       */
      public String etag() {
          return this.etag;
      }
  
      /**
       * Set a unique read-only string that changes whenever the resource is updated.
       *
       * @param etag the etag value to set
       * @return the ApplicationGatewayPathRule object itself.
       */
      public ApplicationGatewayPathRule withEtag(String etag) {
          this.etag = etag;
          return this;
      }
  
      /**
       * Get type of the resource.
       *
       * @return the type value
       */
      public String type() {
          return this.type;
      }
  
      /**
       * Set type of the resource.
       *
       * @param type the type value to set
       * @return the ApplicationGatewayPathRule object itself.
       */
      public ApplicationGatewayPathRule withType(String type) {
          this.type = type;
          return this;
      }
  
  }
  