content: // Copyright 2012 Citrix Systems, Inc. Licensed under the
  // Apache License, Version 2.0 (the "License"); you may not use this
  // file except in compliance with the License.  Citrix Systems, Inc.
  // reserves all rights not expressly granted by the License.
  // You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License 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.
  //
  // Automatically generated by addcopyright.py at 04/03/2012
  package org.apache.cloudstack.api.command.user.loadbalancer;
  
  import org.apache.cloudstack.acl.RoleType;
  import org.apache.cloudstack.api.APICommand;
  import org.apache.cloudstack.api.ApiConstants;
  import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
  import org.apache.cloudstack.api.Parameter;
  import org.apache.cloudstack.api.response.LBStickinessResponse;
  import org.apache.cloudstack.context.CallContext;
  
  import com.cloud.event.EventTypes;
  import com.cloud.network.rules.LoadBalancer;
  import com.cloud.network.rules.StickinessPolicy;
  import com.cloud.user.Account;
  
  @APICommand(name = "updateLBStickinessPolicy", description = "Updates load balancer stickiness policy", responseObject = LBStickinessResponse.class, since = "4.4",
  requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
  public class UpdateLBStickinessPolicyCmd extends BaseAsyncCustomIdCmd{
  
  
      /////////////////////////////////////////////////////
      //////////////// API parameters /////////////////////
      /////////////////////////////////////////////////////
      @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = LBStickinessResponse.class, required = true, description = "id of lb stickiness policy")
      private Long id;
  
      @Parameter(name = ApiConstants.FOR_DISPLAY, type = CommandType.BOOLEAN, description = "an optional field, whether to the display the policy to the end user or not", since = "4.4", authorized = {RoleType.Admin})
      private Boolean display;
  
      /////////////////////////////////////////////////////
      /////////////////// Accessors ///////////////////////
      /////////////////////////////////////////////////////
      public Long getId() {
          return id;
      }
  
      public Boolean getDisplay() {
          return display;
      }
  
      @Override
      public long getEntityOwnerId() {
          Account account = CallContext.current().getCallingAccount();
          if (account != null) {
              return account.getId();
          }
  
          return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked
      }
  
      @Override
      public String getEventDescription() {
          return "Update load balancer stickiness policy ID= " + id;
      }
  
      @Override
      public String getEventType() {
          return EventTypes.EVENT_LB_STICKINESSPOLICY_UPDATE;
      }
  
      /////////////////////////////////////////////////////
      /////////////// API Implementation///////////////////
      /////////////////////////////////////////////////////
      @Override
      public void execute() {
          StickinessPolicy policy = _lbService.updateLBStickinessPolicy(this.getId(), this.getCustomId(), this.getDisplay());
          LoadBalancer lb = _lbService.findById(policy.getLoadBalancerId());
          LBStickinessResponse spResponse = _responseGenerator.createLBStickinessPolicyResponse(policy, lb);
          setResponseObject(spResponse);
          spResponse.setResponseName(getCommandName());
      }
  
      @Override
      public void checkUuid() {
          if (this.getCustomId() != null) {
              _uuidMgr.checkUuid(this.getCustomId(), StickinessPolicy.class);
          }
      }
  }
  