     1: <?php
     2: /**
     3:  * Copyright 2012-2014 Rackspace US, Inc.
     4:  *
     5:  * Licensed under the Apache License, Version 2.0 (the "License");
     6:  * you may not use this file except in compliance with the License.
     7:  * You may obtain a copy of the License at
     8:  *
     9:  * http://www.apache.org/licenses/LICENSE-2.0
    10:  *
    11:  * Unless required by applicable law or agreed to in writing, software
    12:  * distributed under the License is distributed on an "AS IS" BASIS,
    13:  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14:  * See the License for the specific language governing permissions and
    15:  * limitations under the License.
    16:  */
    17:
    18: namespace OpenCloud\LoadBalancer\Resource;
    19:
    20: /**
    21:  * The access list management feature allows fine-grained network access
    22:  * controls to be applied to the load balancer's virtual IP address. A single IP
    23:  * address, multiple IP addresses, or entire network subnets can be added as a
    24:  * networkItem. Items that are configured with the ALLOW type will always take
    25:  * precedence over items with the DENY type. To reject traffic from all items
    26:  * except for those with the ALLOW type, add a networkItem with an address of
    27:  * "0.0.0.0/0" and a DENY type.
    28:  */
    29: class Access extends NonIdUriResource
    30: {
    31:     public $id;
    32:
    33:     /**
    34:      * Type of item to add:
    35:      * ALLOW - Specifies items that will always take precedence over items with
    36:      *  the DENY type.
    37:      * DENY - Specifies items to which traffic can be denied.
    38:      *
    39:      * @var string
    40:      */
    41:     public $type;
    42:
    43:     /**
    44:      * IP address for item to add to access list.
    45:      *
    46:      * @var string
    47:      */
    48:     public $address;
    49:
    50:     protected static $json_name = "accessList";
    51:     protected static $json_collection_name = "accessList";
    52:     protected static $url_resource = "accesslist";
    53:
    54:     protected $createKeys = array(
    55:         'type',
    56:         'address'
    57:     );
    58:
    59:     public function update($params = array())
    60:     {
    61:         return $this->noUpdate();
    62:     }
    63: }
    64: