blob: bf08348dd42e3a8199703620defa056f1ae76af1 [file] [log] [blame]
/*
* wsman-transport.i
* client transport declarations for openwsman swig bindings
*
*/
%rename(Transport) _WsManTransport;
%nodefault _WsManTransport;
typedef struct _WsManTransport {} WsManTransport;
/*
* Document-class: Transport
*
* Transport reflects details of the http(s) transport layer between
* client and server.
*
*/
/* rename those as <foo>_STR below */
%ignore _WS_NO_AUTH;
%ignore _WS_BASIC_AUTH;
%ignore _WS_DIGEST_AUTH;
%ignore _WS_PASS_AUTH;
%ignore _WS_NTLM_AUTH;
%ignore _WS_GSSNEGOTIATE_AUTH;
%include "u/libu.h"
%include "wsman-client-transport.h"
%extend _WsManTransport {
/* No authentication */
%constant int NO_AUTH = WS_NO_AUTH;
/* HTTP basic auth */
%constant int BASIC_AUTH = WS_BASIC_AUTH;
/* HTTP digest auth */
%constant int DIGEST_AUTH = WS_DIGEST_AUTH;
/* Windows Passport auth */
%constant int PASS_AUTH = WS_PASS_AUTH;
/* Windows NT Lan manager auth */
%constant int NTLM_AUTH = WS_NTLM_AUTH;
/* GSSAPI auth */
%constant int GSSNEGOTIATE_AUTH = WS_GSSNEGOTIATE_AUTH;
/* No authentication */
%constant char *NO_AUTH_STR = _WS_NO_AUTH;
/* HTTP basic auth */
%constant char *BASIC_AUTH_STR = _WS_BASIC_AUTH;
/* HTTP digest auth */
%constant char *DIGEST_AUTH_STR = _WS_DIGEST_AUTH;
/* Windows Passport auth */
%constant char *PASS_AUTH_STR = _WS_PASS_AUTH;
/* Windows NT Lan manager auth */
%constant char *NTLM_AUTH_STR = _WS_NTLM_AUTH;
/* GSSAPI auth */
%constant char *GSSNEGOTIATE_AUTH_STR = _WS_GSSNEGOTIATE_AUTH;
#if defined(SWIGRUBY)
%rename("auth_method?") is_auth_method(int method);
%typemap(out) int is_auth_method
"$result = ($1 != 0) ? Qtrue : Qfalse;";
#endif
/*
* Check if the passed method id is valid for authentication
*
* call-seq:
* transport.auth_method?(Integer) -> Boolean
*
*/
int is_auth_method(int method) {
return wsman_is_auth_method((WsManClient *)$self, method);
}
/*
* Close the transport. No further communication possible.
*
*/
void close() {
wsman_transport_close_transport((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("agent=") set_agent(const char *agent);
#endif
/*
* Set the HTTP agent identifier (User-agent:) string
*
* This is how the client will show up in the servers http log.
* Defaults to "Openwsman"
*
* call-seq:
* transport.agent = "Client identifier"
*
*/
void set_agent(const char *agent) {
wsman_transport_set_agent((WsManClient *)$self, agent);
}
%newobject agent;
/*
* Get the HTTP agent identifier string
*
* call-seq:
* transport.agent -> String
*
*/
char *agent() {
return wsman_transport_get_agent ((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("username") get_username();
#endif
%newobject get_username;
/*
* Server credentials
*
* Get the username part of the http transport credentials
*
* call-seq:
* transport.username -> String
*
*/
char *get_username() {
return wsman_transport_get_userName((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("username=") set_username(char *user_name);
#endif
/*
* Server credentials
*
* Set the username part of the http transport credentials
*
* call-seq:
* transport.username = "Username"
*
*/
void set_username(char *user_name) {
wsman_transport_set_userName((WsManClient *)$self, user_name);
}
#if defined(SWIGRUBY)
%rename("password") get_password();
#endif
%newobject get_password;
/*
* Server credentials
*
* Get the password part of the http transport credentials
*
* call-seq:
* transport.password -> String
*
*/
char *get_password() {
return wsman_transport_get_password((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("password=") set_password(char *password);
#endif
/*
* Server credentials
*
* Set the password part of the http transport credentials
*
* call-seq:
* transport.password = "Password"
*
*/
void set_password(char *password) {
wsman_transport_set_password((WsManClient *)$self, password);
}
#if defined(SWIGRUBY)
%rename("proxy_username") get_proxy_username();
#endif
%newobject get_proxy_username;
/*
* Windows clients: HTTP proxy credentials
*
* Get the username part of the http proxy credentials
*
* call-seq:
* transport.proxy_username -> String
*
*/
char *get_proxy_username() {
return wsman_transport_get_proxy_username((WsManClient *)$self );
}
#if defined(SWIGRUBY)
%rename("proxy_username=") set_proxy_username(char *proxy_username);
#endif
/*
* Windows clients: HTTP proxy credentials
*
* Set the username part of the http proxy credentials
*
* call-seq:
* transport.proxy_username = "proxy_username"
*
*/
void set_proxy_username(char *proxy_username) {
wsman_transport_set_proxy_username((WsManClient *)$self, proxy_username );
}
#if defined(SWIGRUBY)
%rename("proxy_password") get_proxy_password();
#endif
%newobject get_proxy_password;
/*
* Windows clients: HTTP proxy credentials
*
* Get the password part of the http proxy credentials
*
* call-seq:
* transport.proxy_password -> String
*
*/
char *get_proxy_password() {
return wsman_transport_get_proxy_password((WsManClient *)$self );
}
#if defined(SWIGRUBY)
%rename("proxy_password=") set_proxy_password(char *proxy_password);
#endif
/*
* Windows clients: HTTP proxy credentials
*
* Set the password part of the http proxy credentials
*
* call-seq:
* transport.proxy_password = "proxy_password"
*
*/
void set_proxy_password(char *proxy_password) {
wsman_transport_set_proxy_password((WsManClient *)$self, proxy_password );
}
#if defined(SWIGRUBY)
%rename("auth_method=") set_auth_method( const char *am);
#endif
/*
* Set the authentication method
*
* Value must be one of:
* * Openwsman::NO_AUTH_STR
* * Openwsman::BASIC_AUTH_STR
* * Openwsman::DIGEST_AUTH_STR
* * Openwsman::PASS_AUTH_STR
* * Openwsman::NTLM_AUTH_STR
* * Openwsman::GSSNEGOTIATE_AUTH_STR
*
*/
void set_auth_method(const char *am) {
wsman_transport_set_auth_method((WsManClient *)$self, am);
}
%newobject auth_method;
/*
* Set the authentication method
*
* call-seq:
* transport.auth_method -> String
*
*/
char *auth_method() {
return wsman_transport_get_auth_method ((WsManClient *)$self);
}
/*
* Set the authentication method string corresponding to the given
* auth method id
*
* Value must be one of:
* * Openwsman::NO_AUTH
* * Openwsman::BASIC_AUTH
* * Openwsman::DIGEST_AUTH
* * Openwsman::PASS_AUTH
* * Openwsman::NTLM_AUTH
* * Openwsman::GSSNEGOTIATE_AUTH
*
* call-seq:
* transport.auth_name(Integer) -> String
*
*/
static const char *auth_name(int auth) {
return wsmc_transport_get_auth_name(auth);
}
/*
* Get the authentication method integer id
*
*/
int auth_value() {
return wsmc_transport_get_auth_value((WsManClient *)$self);
}
/*
* Get string corresponding to given error code
*
* call-seq:
* transport.error_string(Integer) -> String
*
*/
static char *error_string(int err) {
return wsman_transport_get_last_error_string(err);
}
#if defined(SWIGRUBY)
%rename("timeout=") set_timeout(unsigned long timeout);
#endif
/*
* Set the transport timeout in seconds
*
* ====== Note
* This is the http layer timeout. Not to be confused with the
* WS-Management operation timeout set via Openwsman::ClientOptions.timeout
*
*/
void set_timeout(unsigned long timeout) {
wsman_transport_set_timeout((WsManClient *)$self, timeout);
}
/*
* Get the transport timeout in seconds
*
* call-seq:
* transport.timeout -> Integer
*
*/
unsigned long timeout() {
return wsman_transport_get_timeout((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("verify_peer=") set_verify_peer( VALUE rvalue );
/*
* verify the peer in SSL communication ?
*
* If passed +false+, +nil+, or 0: disable peer verification
* else: enable peer verification
*
*/
void set_verify_peer( VALUE rvalue ) {
unsigned int value;
if ((rvalue == Qfalse) || (rvalue == Qnil)) {
value = 0;
}
else if ((TYPE(rvalue) == T_FIXNUM) && (FIX2INT(rvalue) == 0)) {
value = 0;
}
else {
value = 1;
}
#else
/*
* verify the peer in SSL communication ?
* no: == 0
* yes: != 0
*
*/
void set_verify_peer( unsigned int value ) {
#endif
wsman_transport_set_verify_peer((WsManClient *)$self, value);
}
#if defined(SWIGRUBY)
%rename("verify_peer?") verify_peer();
%typemap(out) unsigned int verify_peer
"$result = ($1 != 0) ? Qtrue : Qfalse;";
#endif
/*
* Peer to be verified ?
*
* call-seq:
* transport.verify_peer? -> Boolean
*
*/
unsigned int verify_peer() {
return wsman_transport_get_verify_peer((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("verify_host=") set_verify_host(VALUE rvalue);
/*
* verify the host in SSL communication ?
*
* If passed +false+, +nil+, or 0: disable peer verification
* else: enable peer verification
*
*/
void set_verify_host( VALUE rvalue ) {
unsigned int value;
if ((rvalue == Qfalse) || (rvalue == Qnil)) {
value = 0;
}
else if ((TYPE(rvalue) == T_FIXNUM) && (FIX2INT(rvalue) == 0)) {
value = 0;
}
else {
value = 1;
}
#else
/*
* verify the host in SSL communication ?
* no: == 0
* yes: != 0
*
*/
void set_verify_host(unsigned int value) {
#endif
wsman_transport_set_verify_host((WsManClient *)$self, value);
}
#if defined(SWIGRUBY)
%rename("verify_host?") verify_host();
%typemap(out) unsigned int verify_host
"$result = ($1 != 0) ? Qtrue : Qfalse;";
#endif
/*
* Host to be verified ?
*
* call-seq:
* transport.verify_host? -> Boolean
*
*/
unsigned int verify_host() {
return wsman_transport_get_verify_host((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("proxy=") set_proxy(const char *proxy);
#endif
/*
* Set http proxy URL
*
* Pass nil to disable proxy communication
*
* ====== Example
* transport.proxy = "http://your.proxy.com:80"
*
*/
void set_proxy(const char *proxy) {
wsman_transport_set_proxy((WsManClient *)$self, proxy);
}
%newobject proxy;
/*
* Get http proxy URL
*
*/
char *proxy() {
return wsman_transport_get_proxy((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("proxyauth=") set_proxyauth(const char *pauth);
#endif
/*
* Linux clients: HTTP proxy credentials
*
* Set the proxy username and password
*
* ====== Example
* transport.proxyauth = "username:password"
*
*/
void set_proxyauth(const char *pauth) {
wsman_transport_set_proxyauth((WsManClient *)$self, pauth);
}
%newobject proxyauth;
/*
* Linux clients: HTTP proxy credentials
*
* Get the proxy username and password as "username:password"
*
* call-seq:
* transport.proxyauth -> String
*
*/
char *proxyauth(){
return wsman_transport_get_proxyauth((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("cainfo=") set_cainfo(const char *cainfo);
#endif
/*
* Set the certification authority (CAINFO)
*
*/
void set_cainfo(const char *cainfo) {
wsman_transport_set_cainfo((WsManClient *)$self, cainfo);
}
%newobject cainfo;
/*
* Get the certification authority (CAINFO)
*
* call-seq:
* transport.cainfo -> String
*
*/
char *cainfo() {
return wsman_transport_get_cainfo((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("certhumbprint=") set_certhumbprint(const char *arg);
#endif
/*
* Set the certification thumbprint
*
*/
void set_certhumbprint(const char *arg) {
wsman_transport_set_certhumbprint((WsManClient *)$self, arg);
}
%newobject certhumbprint;
/*
* Set the certification thumbprint
*
* call-seq:
* transport.certhumbprint -> String
*
*/
char *certhumbprint() {
return wsman_transport_get_certhumbprint((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("capath=") set_capath(const char *capath);
#endif
/*
* Set the path to the certification authority (CAINFO) store
*
*/
void set_capath(const char *capath) {
wsman_transport_set_capath((WsManClient *)$self, capath);
}
%newobject capath;
/*
* Get the path to the certification authority (CAINFO) store
*
*/
char *capath() {
return wsman_transport_get_capath((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("caoid=") set_caoid(const char *oid);
#endif
/*
* Windows client
*
* Set the CA OID
*
* ====== Reference
* http://support.microsoft.com/kb/287547
*
*/
void set_caoid(const char *oid) {
wsman_transport_set_caoid((WsManClient *)$self, oid);
}
%newobject caoid;
/*
* Windows client
*
* Get the CA OID
*
*/
char *caoid() {
return wsman_transport_get_caoid((WsManClient *)$self);
}
#ifdef _WIN32
#if defined(SWIGRUBY)
%rename("calocal=") set_calocal(BOOL local);
#endif
/*
* Windows client
*
* Use local CA ?
*
*/
void set_calocal(BOOL local) {
wsman_transport_set_calocal((WsManClient *)$self, local);
}
/*
* Windows client
*
* Use local CA ?
*
* call-seq:
* transport.calocal -> Boolean
*
*/
BOOL calocal() {
return wsman_transport_get_calocal((WsManClient *)$self);
}
#endif
#if defined(SWIGRUBY)
%rename("cert=") set_cert(const char *cert);
#endif
/*
* Set the certificate
*
*/
void set_cert(const char *cert) {
wsman_transport_set_cert((WsManClient *)$self, cert);
}
%newobject cert;
/*
* Get the certificate
*
*/
char *cert() {
return wsman_transport_get_cert((WsManClient *)$self);
}
#if defined(SWIGRUBY)
%rename("key=") set_key(const char *key);
#endif
/*
* Set the key
*
*/
void set_key(const char *key) {
wsman_transport_set_key((WsManClient *)$self, key);
}
%newobject key;
/*
* Get the key
*
*/
char *key() {
return wsman_transport_get_key((WsManClient *)$self);
}
}