ClientOptions

client option declarations for openwsman swig bindings

%rename(ClientOptions) client_opt_t; %nodefault client_opt_t; typedef struct {} client_opt_t;

/*

 Document-class: ClientOptions

 ClientOptions control the behaviour of the Client connection

 The primary use of ClientOptions in normal operations is adding
 selectors - key/value pairs added to the request URL.

 For WS-CIM operations, selectors define the key attributes for
 the selected CIM class to address a specific instance of the class.

/

%extend client_opt_t {

client_opt_t() {
  client_opt_t *options = wsmc_options_init();
  return options;
}

~client_opt_t() {
  wsmc_options_destroy( $self );
}

/*
   Request to dump all operations to the dumpfile

   Used for debugging on the wire-level

   See also: clear_dump_request

   call-seq:
     options.set_dump_request

  /
void set_dump_request(void) {
  wsmc_set_action_option($self, FLAG_DUMP_REQUEST );
}

/*
   Reset dump all operations to the dumpfile

   Used for debugging on the wire-level

   See also: set_dump_request

   call-seq:
     options.clear_dump_request

  /
void clear_dump_request(void) {
  wsmc_clear_action_option($self, FLAG_DUMP_REQUEST );
}

if defined(SWIGRUBY)

%rename( "flags=" ) set_flags(int flags);

endif

/*
   set option flag(s)

   adds new flag(s) to options

   call-seq:
     options.flags = Openwsman::FLAG_ENUMERATION_OPTIMIZATION

  /
void set_flags(int flags) {
  wsmc_set_action_option($self, flags);
}

if defined(SWIGRUBY)

%rename( "flags" ) get_flags();

endif

/*
   get option flag(s)

   return current flags bitmask

   call-seq:
     optins.flags -> Integer

  /
unsigned int get_flags() {
  return wsmc_get_action_option($self);
}

/*
   clear option flag(s)

   clears specific flag(s) from options

   call-seq:
     options.clear_flags Openwsman::FLAG_ENUMERATION_OPTIMIZATION

  /
void clear_flags(int flags) {
  wsmc_clear_action_option($self, flags);
}

/*
   reset option flags

   sets option flags bitmask to FLAG_NONE

   call-seq:
     options.reset_flags

  /
void reset_flags() {
  wsmc_clear_action_option($self, ~FLAG_NONE);
}

if defined(SWIGRUBY)

%rename( "max_envelope_size=" ) set_max_envelope_size(unsigned long size);

endif

/*
   Limit size of result document

   call-seq:
     options.max_envelope_size = 10240

  /
void set_max_envelope_size(unsigned long size) {
  $self->max_envelope_size = size;
}

if defined(SWIGRUBY)

%rename( "max_envelope_size" ) get_max_envelope_size();

endif

/*
   Return size limit of result document

   call-seq:
     options.max_envelope_size -> Integer

  /
unsigned long get_max_envelope_size() {
  return $self->max_envelope_size;
}

if defined(SWIGRUBY)

%rename( "max_elements=" ) set_max_elements(int elements);

endif

/*
   Limit number of elements returned by enumeration

   call-seq:
     options.max_elements = 42

  /
void set_max_elements(int elements) {
  $self->max_elements = elements;
}

if defined(SWIGRUBY)

%rename( "max_elements" ) get_max_elements();

endif

/*
   Return enumeration elements limit

   call-seq:
     options.max_elements -> Integer

  /
int get_max_elements() {
  return $self->max_elements;
}

if defined(SWIGRUBY)

%rename( "timeout=" ) set_timeout(unsigned long timeout);

endif

/*
   Operation timeout in milliseconds
   See Openwsman::Transport.timeout for transport timeout

   call-seq:
     options.timeout = 60*1000 # 60 seconds

  /
void set_timeout(unsigned long timeout) {
  $self->timeout = timeout;
}

if defined(SWIGRUBY)

%rename( "timeout" ) get_timeout();

endif

/*
   Return operation timeout in milliseconds
   See Openwsman::Transport.timeout for transport timeout

   call-seq:
     options.timeout -> Integer

  /
unsigned long get_timeout() {
  return $self->timeout;
}

if defined(SWIGRUBY)

%rename( "fragment=" ) set_fragment(char *fragment);

endif

/*
   Set fragment filter
   See DSP0226, section 7.7.
   (Supported Dialects: XPATH)

   call-seq:
     options.fragment = "xpath/expression"

  /
void set_fragment(char *fragment) {
  wsmc_set_fragment(fragment, $self);
}

if defined(SWIGRUBY)

%rename( "fragment" ) get_fragment();

endif

/*
   Get fragment filter
   See DSP0226, section 7.7.

   call-seq:
     options.fragment -> String

  /
const char *get_fragment() {
  return $self->fragment;
}

if defined(SWIGRUBY)

%rename( "cim_namespace=" ) set_cim_namespace(char *cim_namespace);

endif

/*
   Set CIM Namespace for Openwsman
   (default is root/cimv2)
   Note:
   Microsoft WinRM set the resource namespace by attaching it
   to the resource URI

   See also: Openwsman.epr_prefix_for

   call-seq:
     options.cim_namespace = "root/interop"

  /
void set_cim_namespace(char *cim_namespace) {
  wsmc_set_cim_ns(cim_namespace, $self);
}

if defined(SWIGRUBY)

%rename( "cim_namespace" ) get_cim_namespace();

endif

/*
   Get CIM Namespace for Openwsman
   Note:
   Microsoft WinRM set the resource namespace by attaching it
   to the resource URI

   See also: Openwsman.epr_prefix_for

   call-seq:
     options.cim_namespace -> String

  /
const char *get_cim_namespace() {
  return $self->cim_ns;
}

if defined(SWIGRUBY)

%rename( "reference=" ) set_reference(const char *reference);

endif

/*
   Set WS-Addressing reference properties
   Argument must the string representation of a valid XML document

   call-seq:
     options.reference = "<xml ...>"

  /
void set_reference(const char *reference) {
  wsmc_set_reference(reference, $self);
}

if defined(SWIGRUBY)

%rename( "reference" ) get_reference();

endif

/*
   Get WS-Addressing reference properties
   Returns the string representation of a valid XML document

   call-seq:
     options.reference -> String

  /
const char *get_reference() {
  return $self->reference;
}

if defined(SWIGRUBY)

/*
   Add an option (for OptionSet) as key/value pair

   NOTE:
   the value must be properly escaped (replace & with &amp;, etc.)
   in Ruby use CGI::escapeHTML()

   call-seq:
     options.add_option "Name", "Value"

  /
void add_option(VALUE k, VALUE v)
{
  const char *key = as_string(k);
  const char *value = as_string(v);

else

void add_option(const char *key, const char *value)
{

endif

  wsmc_add_option($self, key, value);
}

if defined(SWIGRUBY)

%rename( "options=" ) set_options(VALUE hash);
/*
   Set options (for OptionSet) from Hash

   NOTE:
   the values must be properly escaped (replace & with &amp;, etc.)
   in Ruby use CGI::escapeHTML()

   call-seq:
     options.options = { "Name" => "Value", ... }

  /
void set_options(VALUE hash)
{
  $self->options = value2hash(NULL, hash, 0);
}

%rename( "options" ) get_options(void);
/*
   Get options (for OptionSet) as Hash

   call-seq:
     options.options -> Hash

  /
VALUE get_options(void)
{
  return hash2value($self->options);
}

endif

if defined(SWIGRUBY)

/*
   Add a selector as key/value pair

   NOTE:
   the string value must be properly escaped (replace & with &amp;, etc.)
   in Ruby use CGI::escapeHTML()

   call-seq:
     options.add_selector "Key", "Value"
     options.add_selector "Key", end_point_reference

  /
void add_selector(VALUE k, VALUE v)
{
  const char *key = as_string(k);
  KLASS_DECL(SwigClassEndPointReference,SWIGTYPE_p_epr_t);
  if (CLASS_OF(v) == KLASS_OF(SwigClassEndPointReference)) {
    epr_t *epr;
    SWIG_ConvertPtr(v, (void **)&epr, SWIGTYPE_p_epr_t, 0);
    wsmc_add_selector_epr($self, key, epr);
  }
  else {
    const char *value = as_string(v);
    wsmc_add_selector($self, key, value);
  }
}

else

void add_selector(const char *key, const char *value)
{
  wsmc_add_selector($self, key, value);
}

endif

if defined(SWIGRUBY)

%rename( "selectors" ) get_selectors(void);
/*
   Get selectors as Hash

   call-seq:
     options.selectors -> Hash

  /
VALUE get_selectors(void)
{
  return kv_list_to_hash($self->selectors);
}

endif

if defined(SWIGRUBY)

/*
   Add a property as key/value pair
   * Input parameters to 'invoke'd methods are represented as ClientOption properties
   * Key is evaluated as String
   * Value is evaluated as String or EndPointReference

   call-seq:
     options.add_property "Key", "Value"
     options.add_property "Key", EndPointReference.new(...)

  /
void add_property(VALUE k, VALUE v)
{
  const char *key = as_string(k);
  KLASS_DECL(SwigClassEndPointReference,SWIGTYPE_p_epr_t);

  if (CLASS_OF(v) == KLASS_OF(SwigClassEndPointReference)) {
    const epr_t *epr;
    SWIG_ConvertPtr(v, (void **)&epr, SWIGTYPE_p_epr_t, 0);
    wsmc_add_property_epr($self, key, epr);
  }
  else {
    const char *value = as_string(v);
    wsmc_add_property($self, key, value);
  }
}

else

/*
   Add a string property as key/value pair
   * Input parameters to 'invoke'd methods are represented as ClientOption properties

   call-seq:
     options.add_property( "Key", "Value" )

  /
void add_property(const char *key, const char *value)
{
  wsmc_add_property($self, key, value);
}

/*
   Add a string property as key/value pair (an 'add_property' analogue for adding array items)
   * Input parameters to 'invoke'd methods are represented as ClientOption properties

   call-seq:
     options.add_property( "Key", "Value" )

  /
void add_property_array_item(const char *key, const char *value)
{
  wsmc_add_property_array_item($self, key, value);
}

/*
   Add an EndPointReference property as key/value pair
     Input parameters to 'invoke'd methods are represented as ClientOption properties

   call-seq:
     options.add_property( String, EndPointReference )

  /
void add_property(const char *key, const epr_t *epr)
{
  wsmc_add_property_epr($self, key, epr);
}

endif

if defined(SWIGRUBY)

%rename( "properties" ) get_properties(void);
/*
   Get properties as Hash
   * Input parameters to 'invoke'd methods are represented as ClientOption properties

   call-seq:
     options.properties -> Hash

  /
VALUE get_properties(void)
{
  return kv_list_to_hash($self->properties);
}

endif

if defined(SWIGRUBY)

%rename( "delivery_uri=" ) set_delivery_uri(const char *delivery_uri);

endif

/*
   Set delivery uri

   call-seq:
     options.delivery_uri = "http://..."

  /
void set_delivery_uri( const char *delivery_uri ) {
  wsmc_set_delivery_uri(delivery_uri, $self);
}

/*
   Get delivery uri

   call-seq:
     options.delivery_uri -> String

  /
const char *delivery_uri() {
  return $self->delivery_uri;
}

if defined(SWIGRUBY)

%rename( "sub_expiry=" ) set_sub_expiry(unsigned int event_subscription_expire);

endif

/*
   Set subscription expiry timeout (in seconds)

   call-seq:
     options.sub_expiry = 600 # 10 mins

  /
void set_sub_expiry(unsigned int event_subscription_expire) {
      wsmc_set_sub_expiry(event_subscription_expire, $self);
}

/*
   Get subscription expiry timeout (in seconds)

   call-seq:
     options.sub_expiry -> Integer

  /
int sub_expiry() {
  return $self->expires;
}

if defined(SWIGRUBY)

%rename("heartbeat_interval=") set_heartbeat_interval(unsigned int heartbeat_interval);

endif

/*
   Set subscription heartbeat interval (in seconds)

   call-seq:
     options.heartbeat_interval = 60 # every minute

  /
void set_heartbeat_interval(unsigned int heartbeat_interval) {
      wsmc_set_heartbeat_interval(heartbeat_interval, $self);
}

/*
   Get subscription heartbeat interval (in seconds)

   call-seq:
     options.heartbeat_interval -> Integer

  /
int heartbeat_interval() {
  return $self->heartbeat_interval;
}

if defined(SWIGRUBY)

%rename( "delivery_mode=" ) set_delivery_mode(unsigned int delivery_mode);

endif

/*
   Set subscription delivery mode (push, pushwithack,events,pull)

   call-seq:
     options.delivery_mode = Openwsman::WSMAN_DELIVERY_PUSH

  /
void set_delivery_mode(unsigned int delivery_mode) {
  if (delivery_mode > WSMAN_DELIVERY_PULL)
    SWIG_exception( SWIG_ValueError, "Bad delivery mode" );

  wsmc_set_delivery_mode(delivery_mode, $self);

if defined(SWIGPYTHON) || defined(SWIGPERL) || defined(SWIGJAVA)

fail:
return;

endif

}

/*
   Get subscription delivery mode (push, pushwithack,events,pull)

   call-seq:
     options.delivery_mode -> Integer

  /
int delivery_mode() {
  return $self->delivery_mode;
}

if defined(SWIGRUBY)

%rename( "delivery_security_mode=" ) set_delivery_security_mode(unsigned int delivery_mode);

endif

/*
   Set subscription delivery security mode

   (auto, http basic, http digest, https basic, https digest,
   https mutual, https mutual basic, https mutual digest,
   http spnego kerberos, https spnego kerberos,
   https mutual spnego kerberos)

   call-seq:
     options.delivery_security_mode = Openwsman::WSMAN_DELIVERY_SEC_HTTPS_BASIC

  /
void set_delivery_security_mode(unsigned int delivery_sec_mode) {
  if (delivery_sec_mode > WSMAN_DELIVERY_SEC_HTTP_SPNEGO_KERBEROS)
    SWIG_exception( SWIG_ValueError, "Bad delivery security mode" );
  wsmc_set_delivery_security_mode(delivery_sec_mode, $self);

if defined(SWIGPYTHON) || defined(SWIGPERL) || defined(SWIGJAVA)

fail:
return;

endif

}

/*
   Get subscription delivery security mode

   call-seq:
     options.delivery_security_mode -> Integer

  /
int delivery_sec_mode() {
  return $self->delivery_sec_mode;
}

if defined(SWIGRUBY)

%rename("locale=") set_locale(const char *locale);

endif

/*
   Set request locale

   call-seq:
     options.locale = "en_us"

  /
void set_locale(const char *locale) {
      wsmc_set_locale($self, locale);
}

/*
   Get locales

   call-seq:
     options.locale -> String

  /
const char *locale() {
  return $self->locale;
}

}