/* Generated by IDL compiler version OSF DCE T1.1.0-03 */
#ifndef DCEAPI 
# include <dce/dcedef.h> 
#endif 
#ifndef sec_attr_base_v0_0_included
#define sec_attr_base_v0_0_included
#ifndef IDLBASE_H
#include <dce/idlbase.h>
#endif

#ifdef __cplusplus
    extern "C" {
#endif

#ifndef nbase_v0_0_included
#include <dce/nbase.h>
#endif
#ifndef sec_acl_base_v0_0_included
#include <dce/aclbase.h>
#endif
typedef twr_t *sec_attr_twr_ref_t;
typedef struct  {
unsigned32 count;
sec_attr_twr_ref_t towers[1];
} sec_attr_twr_set_t;
typedef sec_attr_twr_set_t *sec_attr_twr_set_p_t;
typedef unsigned32 sec_attr_bind_type_t;
#define sec_attr_bind_type_string (0)
#define sec_attr_bind_type_twrs (1)
#define sec_attr_bind_type_svrname (2)
typedef struct  {
unsigned32 name_syntax;
idl_char *name;
} sec_attr_bind_svrname;
typedef struct  {
sec_attr_bind_type_t bind_type;
union  {
/* case(s): 0 */
idl_char *string_binding;
/* case(s): 1 */
sec_attr_twr_set_t *twr_set;
/* case(s): 2 */
sec_attr_bind_svrname *svrname;
} tagged_union;
} sec_attr_binding_t;
typedef sec_attr_binding_t *sec_attr_binding_p_t;
typedef enum {sec_attr_bind_auth_none,
sec_attr_bind_auth_dce} sec_attr_bind_auth_info_type_t;
typedef struct  {
sec_attr_bind_auth_info_type_t info_type;
union  {
/* case(s): 0 */
/* Empty arm */
/* case(s): 1 */
struct  {
idl_char *svr_princ_name;
unsigned32 protect_level;
unsigned32 authn_svc;
unsigned32 authz_svc;
} dce_info;
} tagged_union;
} sec_attr_bind_auth_info_t;
typedef struct  {
sec_attr_bind_auth_info_t auth_info;
unsigned32 num_bindings;
sec_attr_binding_t bindings[1];
} sec_attr_bind_info_t;
typedef sec_attr_bind_info_t *sec_attr_bind_info_p_t;
typedef enum {sec_attr_enc_any,
sec_attr_enc_void,
sec_attr_enc_integer,
sec_attr_enc_printstring,
sec_attr_enc_printstring_array,
sec_attr_enc_bytes,
sec_attr_enc_confidential_bytes,
sec_attr_enc_i18n_data,
sec_attr_enc_uuid,
sec_attr_enc_attr_set,
sec_attr_enc_binding,
sec_attr_enc_trig_binding} sec_attr_encoding_t;
typedef idl_char *sec_attr_enc_printstring_p_t;
typedef struct  {
unsigned32 num_strings;
sec_attr_enc_printstring_p_t strings[1];
} sec_attr_enc_str_array_t;
typedef struct  {
unsigned32 length;
idl_byte data[1];
} sec_attr_enc_bytes_t;
typedef struct  {
unsigned32 codeset;
unsigned32 length;
idl_byte data[1];
} sec_attr_i18n_data_t;
typedef struct  {
unsigned32 num_members;
uuid_t members[1];
} sec_attr_enc_attr_set_t;
typedef struct sec_attr_u {
sec_attr_encoding_t attr_encoding;
union  {
/* case(s): 1 */
/* Empty arm */
/* case(s): 2 */
signed32 signed_int;
/* case(s): 3 */
sec_attr_enc_printstring_p_t printstring;
/* case(s): 4 */
sec_attr_enc_str_array_t *string_array;
/* case(s): 5, 6 */
sec_attr_enc_bytes_t *bytes;
/* case(s): 7 */
sec_attr_i18n_data_t *idata;
/* case(s): 8 */
uuid_t uuid;
/* case(s): 9 */
sec_attr_enc_attr_set_t *attr_set;
/* case(s): 10, 11 */
sec_attr_bind_info_t *binding;
} tagged_union;
} sec_attr_value_t;
typedef struct  {
uuid_t attr_id;
sec_attr_value_t attr_value;
} sec_attr_t;
typedef struct  {
unsigned32 num_attrs;
sec_attr_t *attrs;
} sec_attr_vec_t;
typedef sec_attr_vec_t *sec_attr_vec_p_t;
typedef struct  {
uuid_t acl_mgr_type;
sec_acl_permset_t query_permset;
sec_acl_permset_t update_permset;
sec_acl_permset_t test_permset;
sec_acl_permset_t delete_permset;
} sec_attr_acl_mgr_info_t;
typedef sec_attr_acl_mgr_info_t *sec_attr_acl_mgr_info_p_t;
typedef struct  {
unsigned32 num_acl_mgrs;
sec_attr_acl_mgr_info_p_t mgr_info[1];
} sec_attr_acl_mgr_info_set_t;
typedef enum {sec_attr_intercell_act_accept,
sec_attr_intercell_act_reject,
sec_attr_intercell_act_evaluate} sec_attr_intercell_action_t;
typedef unsigned32 sec_attr_trig_type_flags_t;
#define sec_attr_trig_type_none (0)
#define sec_attr_trig_type_query (1)
#define sec_attr_trig_type_update (2)
typedef unsigned32 sec_attr_sch_entry_flags_t;
#define sec_attr_sch_entry_none (0)
#define sec_attr_sch_entry_unique (1)
#define sec_attr_sch_entry_multi_inst (2)
#define sec_attr_sch_entry_reserved (4)
#define sec_attr_sch_entry_use_defaults (8)
typedef struct  {
idl_char *attr_name;
uuid_t attr_id;
sec_attr_encoding_t attr_encoding;
sec_attr_acl_mgr_info_set_t *acl_mgr_set;
sec_attr_sch_entry_flags_t schema_entry_flags;
sec_attr_intercell_action_t intercell_action;
sec_attr_trig_type_flags_t trig_types;
sec_attr_bind_info_t *trig_binding;
idl_char *scope;
idl_char *comment;
} sec_attr_schema_entry_t;
typedef unsigned32 sec_attr_schema_entry_parts_t;
#define sec_attr_schema_part_name (1)
#define sec_attr_schema_part_acl_mgrs (2)
#define sec_attr_schema_part_unique (4)
#define sec_attr_schema_part_reserved (8)
#define sec_attr_schema_part_defaults (16)
#define sec_attr_schema_part_intercell (32)
#define sec_attr_schema_part_trig_types (64)
#define sec_attr_schema_part_trig_bind (128)
#define sec_attr_schema_part_comment (256)
#define sec_attr_schema_part_multi_inst (512)
#define sec_attr_schema_part_scope (1024)
typedef idl_char *sec_attr_component_name_t;
typedef idl_void_p_t sec_attr_cursor_t;
typedef idl_void_p_t sec_attr_srch_cursor_t;

#ifdef __cplusplus
    }
#endif

#endif
