/*
 * Types for the ICF api
 *
 * Copyright 2007 Jeff Latimer
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 *
 */

import "wtypes.idl";

typedef enum NET_FW_PROFILE_TYPE_
{
    NET_FW_PROFILE_DOMAIN,
    NET_FW_PROFILE_STANDARD,
    NET_FW_PROFILE_CURRENT,
    NET_FW_PROFILE_TYPE_MAX
}   NET_FW_PROFILE_TYPE;

typedef enum NET_FW_PROFILE_TYPE2_
{
   NET_FW_PROFILE2_DOMAIN   = 0x0001,
   NET_FW_PROFILE2_PRIVATE  = 0x0002,
   NET_FW_PROFILE2_PUBLIC   = 0x0004,
   NET_FW_PROFILE2_ALL      = 0x7FFFFFFF
} NET_FW_PROFILE_TYPE2;

typedef enum NET_FW_IP_VERSION_
{
    NET_FW_IP_VERSION_V4,
    NET_FW_IP_VERSION_V6,
    NET_FW_IP_VERSION_ANY,
    NET_FW_IP_VERSION_MAX
}   NET_FW_IP_VERSION;

typedef enum NET_FW_POLICY_TYPE_
{
    NET_FW_POLICY_GROUP,
    NET_FW_POLICY_LOCAL,
    NET_FW_POLICY_EFFECTIVE,
    NET_FW_POLICY_TYPE_MAX
}   NET_FW_POLICY_TYPE;

typedef enum NET_FW_SCOPE_
{
    NET_FW_SCOPE_ALL,
    NET_FW_SCOPE_LOCAL_SUBNET,
    NET_FW_SCOPE_CUSTOM,
    NET_FW_SCOPE_MAX
}   NET_FW_SCOPE;

typedef enum NET_FW_SERVICE_TYPE_
{
    NET_FW_SERVICE_FILE_AND_PRINT,
    NET_FW_SERVICE_UPNP,
    NET_FW_SERVICE_REMOTE_DESKTOP,
    NET_FW_SERVICE_NONE,
    NET_FW_SERVICE_TYPE_MAX
}   NET_FW_SERVICE_TYPE;

typedef enum NET_FW_IP_PROTOCOL_
{
    NET_FW_IP_PROTOCOL_TCP =  6,
    NET_FW_IP_PROTOCOL_UDP = 17
}   NET_FW_IP_PROTOCOL;

typedef enum NET_FW_RULE_DIRECTION_
{
    NET_FW_RULE_DIR_IN = 1,
    NET_FW_RULE_DIR_OUT,
    NET_FW_RULE_DIR_MAX
} NET_FW_RULE_DIRECTION;

typedef enum NET_FW_ACTION_
{
    NET_FW_ACTION_BLOCK,
    NET_FW_ACTION_ALLOW,
    NET_FW_ACTION_MAX
} NET_FW_ACTION;

typedef enum NET_FW_MODIFY_STATE_
{
    NET_FW_MODIFY_STATE_OK,
    NET_FW_MODIFY_STATE_GP_OVERRIDE,
    NET_FW_MODIFY_STATE_INBOUND_BLOCKED
} NET_FW_MODIFY_STATE;
