/* Generated file (by generator) */

/*
 * SPDX-FileCopyrightText: 2015 William Yu <williamyu@gnome.org>
 *
 * SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
 */

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include "i-cal-vcard-derived-parameter.h"
#include "libical-glib-private.h"
#include "i-cal-vcard-enum-array.h"
#include "i-cal-vcard-parameter.h"
#include "i-cal-vcard-time.h"
#include "i-cal-vcard-structured.h"
#include "i-cal-vcard-str-array.h"

/**
 * i_cal_vcard_parameter_enum_to_string:
 * @e: an enum numeric value
 *
 * Converts an integer representation of a parameter enum to a string.
 *
 * Returns: string representation of the enum value @e.
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_enum_to_string (gint e)
{
	return vcardparameter_enum_to_string (e);
}

/**
 * i_cal_vcard_parameter_enum_from_string:
 * @str: a string enum value
 *
 * Converts a string representation of a parameter enum to a its numeric value.
 *
 * Returns: an integer representation of the string enum value @str.
 *
 * Since: 4.0
 *
 **/
gint
i_cal_vcard_parameter_enum_from_string (const gchar *str)
{
    g_return_val_if_fail (str != NULL, 0);

	return vcardparameter_string_to_enum (str);
}

/**
 * i_cal_vcard_parameter_new_altid:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding ALTID.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding ALTID
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_altid (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_altid (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_altid:
 * @self: the #ICalVcardParameter of ALTID
 *
 * Returns value of the ALTID @self
 *
 * Returns: the ALTID value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_altid (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_altid ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_altid:
 * @self: the #ICalVcardParameter of ALTID
 * @value: the ALTID value
 *
 * Sets value to the ALTID @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_altid (ICalVcardParameter *self, 
                                 const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_altid ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_author:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding AUTHOR.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding AUTHOR
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_author (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_author (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_author:
 * @self: the #ICalVcardParameter of AUTHOR
 *
 * Returns value of the AUTHOR @self
 *
 * Returns: the AUTHOR value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_author (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_author ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_author:
 * @self: the #ICalVcardParameter of AUTHOR
 * @value: the AUTHOR value
 *
 * Sets value to the AUTHOR @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_author (ICalVcardParameter *self, 
                                  const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_author ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_authorname:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding AUTHORNAME.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding AUTHORNAME
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_authorname (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_authorname (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_authorname:
 * @self: the #ICalVcardParameter of AUTHORNAME
 *
 * Returns value of the AUTHORNAME @self
 *
 * Returns: the AUTHORNAME value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_authorname (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_authorname ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_authorname:
 * @self: the #ICalVcardParameter of AUTHORNAME
 * @value: the AUTHORNAME value
 *
 * Sets value to the AUTHORNAME @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_authorname (ICalVcardParameter *self, 
                                      const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_authorname ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_calscale:
 * @value: the #ICalVcardParameterCalscale value
 *
 * Creates a new #ICalVcardParameter holding CALSCALE.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding CALSCALE
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_calscale (ICalVcardParameterCalscale value)
{
	return i_cal_vcard_parameter_new_full (vcardparameter_new_calscale ((vcardparameter_calscale) (value)), NULL);
}

/**
 * i_cal_vcard_parameter_get_calscale:
 * @self: the #ICalVcardParameter of CALSCALE
 *
 * Returns value of the CALSCALE @self
 *
 * Returns: the CALSCALE value
 *
 * Since: 4.0
 *
 **/
ICalVcardParameterCalscale
i_cal_vcard_parameter_get_calscale (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), I_CAL_VCARD_CALSCALE_NONE);

	return (ICalVcardParameterCalscale) (vcardparameter_get_calscale ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self))));
}

/**
 * i_cal_vcard_parameter_set_calscale:
 * @self: the #ICalVcardParameter of CALSCALE
 * @value: the CALSCALE value
 *
 * Sets value to the CALSCALE @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_calscale (ICalVcardParameter *self, 
                                    ICalVcardParameterCalscale value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));

	vcardparameter_set_calscale ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), (vcardparameter_calscale) (value));
}

/**
 * i_cal_vcard_parameter_new_cc:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding CC.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding CC
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_cc (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_cc (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_cc:
 * @self: the #ICalVcardParameter of CC
 *
 * Returns value of the CC @self
 *
 * Returns: the CC value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_cc (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_cc ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_cc:
 * @self: the #ICalVcardParameter of CC
 * @value: the CC value
 *
 * Sets value to the CC @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_cc (ICalVcardParameter *self, 
                              const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_cc ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_context:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding CONTEXT.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding CONTEXT
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_context (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_context (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_context:
 * @self: the #ICalVcardParameter of CONTEXT
 *
 * Returns value of the CONTEXT @self
 *
 * Returns: the CONTEXT value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_context (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_context ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_context:
 * @self: the #ICalVcardParameter of CONTEXT
 * @value: the CONTEXT value
 *
 * Sets value to the CONTEXT @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_context (ICalVcardParameter *self, 
                                   const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_context ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_created:
 * @value: the #ICalVcardTime value
 *
 * Creates a new #ICalVcardParameter holding CREATED.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding CREATED
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_created (const ICalVcardTime *value)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_TIME ((ICalVcardTime*)value), NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_created (* (vcardtimetype *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)value))), NULL);
}

/**
 * i_cal_vcard_parameter_get_created:
 * @self: the #ICalVcardParameter of CREATED
 *
 * Returns value of the CREATED @self
 *
 * Returns: (transfer full): the CREATED value
 *
 * Since: 4.0
 *
 **/
ICalVcardTime *
i_cal_vcard_parameter_get_created (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return i_cal_vcard_time_new_full (vcardparameter_get_created ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self))));
}

/**
 * i_cal_vcard_parameter_set_created:
 * @self: the #ICalVcardParameter of CREATED
 * @value: the CREATED value
 *
 * Sets value to the CREATED @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_created (ICalVcardParameter *self, 
                                   const ICalVcardTime *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (I_CAL_VCARD_IS_TIME ((ICalVcardTime*)value));

	vcardparameter_set_created ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), * (vcardtimetype *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)value)));
}

/**
 * i_cal_vcard_parameter_new_derived:
 * @value: the #ICalVcardParameterDerived value
 *
 * Creates a new #ICalVcardParameter holding DERIVED.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding DERIVED
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_derived (ICalVcardParameterDerived value)
{
	return i_cal_vcard_parameter_new_full (vcardparameter_new_derived ((vcardparameter_derived) (value)), NULL);
}

/**
 * i_cal_vcard_parameter_get_derived:
 * @self: the #ICalVcardParameter of DERIVED
 *
 * Returns value of the DERIVED @self
 *
 * Returns: the DERIVED value
 *
 * Since: 4.0
 *
 **/
ICalVcardParameterDerived
i_cal_vcard_parameter_get_derived (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), I_CAL_VCARD_DERIVED_NONE);

	return (ICalVcardParameterDerived) (vcardparameter_get_derived ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self))));
}

/**
 * i_cal_vcard_parameter_set_derived:
 * @self: the #ICalVcardParameter of DERIVED
 * @value: the DERIVED value
 *
 * Sets value to the DERIVED @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_derived (ICalVcardParameter *self, 
                                   ICalVcardParameterDerived value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));

	vcardparameter_set_derived ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), (vcardparameter_derived) (value));
}

/**
 * i_cal_vcard_parameter_new_encoding:
 * @value: the #ICalVcardParameterEncoding value
 *
 * Creates a new #ICalVcardParameter holding ENCODING.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding ENCODING
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_encoding (ICalVcardParameterEncoding value)
{
	return i_cal_vcard_parameter_new_full (vcardparameter_new_encoding ((vcardparameter_encoding) (value)), NULL);
}

/**
 * i_cal_vcard_parameter_get_encoding:
 * @self: the #ICalVcardParameter of ENCODING
 *
 * Returns value of the ENCODING @self
 *
 * Returns: the ENCODING value
 *
 * Since: 4.0
 *
 **/
ICalVcardParameterEncoding
i_cal_vcard_parameter_get_encoding (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), I_CAL_VCARD_ENCODING_NONE);

	return (ICalVcardParameterEncoding) (vcardparameter_get_encoding ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self))));
}

/**
 * i_cal_vcard_parameter_set_encoding:
 * @self: the #ICalVcardParameter of ENCODING
 * @value: the ENCODING value
 *
 * Sets value to the ENCODING @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_encoding (ICalVcardParameter *self, 
                                    ICalVcardParameterEncoding value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));

	vcardparameter_set_encoding ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), (vcardparameter_encoding) (value));
}

/**
 * i_cal_vcard_parameter_new_geo:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding GEO.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding GEO
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_geo (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_geo (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_geo:
 * @self: the #ICalVcardParameter of GEO
 *
 * Returns value of the GEO @self
 *
 * Returns: the GEO value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_geo (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_geo ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_geo:
 * @self: the #ICalVcardParameter of GEO
 * @value: the GEO value
 *
 * Sets value to the GEO @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_geo (ICalVcardParameter *self, 
                               const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_geo ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_iana:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding IANA.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding IANA
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_iana (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_iana (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_iana:
 * @self: the #ICalVcardParameter of IANA
 *
 * Returns value of the IANA @self
 *
 * Returns: the IANA value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_iana (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_iana ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_iana:
 * @self: the #ICalVcardParameter of IANA
 * @value: the IANA value
 *
 * Sets value to the IANA @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_iana (ICalVcardParameter *self, 
                                const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_iana ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_index:
 * @value: the integer value
 *
 * Creates a new #ICalVcardParameter holding INDEX.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding INDEX
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_index (gint value)
{
	return i_cal_vcard_parameter_new_full (vcardparameter_new_index (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_index:
 * @self: the #ICalVcardParameter of INDEX
 *
 * Returns value of the INDEX @self
 *
 * Returns: the INDEX value
 *
 * Since: 4.0
 *
 **/
gint
i_cal_vcard_parameter_get_index (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), 0);

	return vcardparameter_get_index ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_index:
 * @self: the #ICalVcardParameter of INDEX
 * @value: the INDEX value
 *
 * Sets value to the INDEX @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_index (ICalVcardParameter *self, 
                                 gint value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));

	vcardparameter_set_index ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_jscomps:
 * @value: the #ICalVcardStructured value
 *
 * Creates a new #ICalVcardParameter holding JSCOMPS.
 *
 * Note: this uses a copy of the structured type,
 * not the one stored in the @value
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding JSCOMPS
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_jscomps (const ICalVcardStructured *value)
{
    vcardstructuredtype *val;
    g_return_val_if_fail(value != NULL, NULL);
    val = (vcardstructuredtype *)i_cal_object_get_native((ICalObject *)value);
    if (val == NULL) {
        return NULL;
    }
    return i_cal_vcard_parameter_new_full(vcardparameter_new_jscomps(vcardstructured_clone(val)), NULL);
}

/**
 * i_cal_vcard_parameter_get_jscomps:
 * @self: the #ICalVcardParameter of JSCOMPS
 *
 * Returns value of the JSCOMPS @self
 *
 * Note: this uses a copy of the structured type, not the one stored
 * in the @self
 *
 * Returns: (transfer full): the JSCOMPS value
 *
 * Since: 4.0
 *
 **/
ICalVcardStructured *
i_cal_vcard_parameter_get_jscomps (const ICalVcardParameter *self)
{
    vcardstructuredtype *val;
    g_return_val_if_fail(self != NULL, NULL);
    val = vcardparameter_get_jscomps((vcardparameter *)i_cal_object_get_native((ICalObject *)self));
    if (val == NULL) {
        return NULL;
    }
    return i_cal_vcard_structured_new_full(vcardstructured_clone(val), NULL);
}

/**
 * i_cal_vcard_parameter_set_jscomps:
 * @self: the #ICalVcardParameter of JSCOMPS
 * @value: the JSCOMPS value
 *
 * Sets value to the JSCOMPS @self
 *
 * Note: this uses a copy of the structured type, not the one stored
 * in the @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_jscomps (ICalVcardParameter *self, 
                                   const ICalVcardStructured *value)
{
    g_return_if_fail(self != NULL);
    vcardparameter_set_jscomps((vcardparameter *)i_cal_object_get_native((ICalObject *)self),
        vcardstructured_clone((vcardstructuredtype *)i_cal_object_get_native((ICalObject *)value)));
}

/**
 * i_cal_vcard_parameter_new_jsptr:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding JSPTR.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding JSPTR
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_jsptr (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_jsptr (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_jsptr:
 * @self: the #ICalVcardParameter of JSPTR
 *
 * Returns value of the JSPTR @self
 *
 * Returns: the JSPTR value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_jsptr (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_jsptr ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_jsptr:
 * @self: the #ICalVcardParameter of JSPTR
 * @value: the JSPTR value
 *
 * Sets value to the JSPTR @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_jsptr (ICalVcardParameter *self, 
                                 const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_jsptr ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_label:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding LABEL.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding LABEL
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_label (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_label (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_label:
 * @self: the #ICalVcardParameter of LABEL
 *
 * Returns value of the LABEL @self
 *
 * Returns: the LABEL value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_label (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_label ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_label:
 * @self: the #ICalVcardParameter of LABEL
 * @value: the LABEL value
 *
 * Sets value to the LABEL @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_label (ICalVcardParameter *self, 
                                 const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_label ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_language:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding LANGUAGE.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding LANGUAGE
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_language (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_language (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_language:
 * @self: the #ICalVcardParameter of LANGUAGE
 *
 * Returns value of the LANGUAGE @self
 *
 * Returns: the LANGUAGE value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_language (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_language ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_language:
 * @self: the #ICalVcardParameter of LANGUAGE
 * @value: the LANGUAGE value
 *
 * Sets value to the LANGUAGE @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_language (ICalVcardParameter *self, 
                                    const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_language ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_level:
 * @value: the #ICalVcardParameterLevel value
 *
 * Creates a new #ICalVcardParameter holding LEVEL.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding LEVEL
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_level (ICalVcardParameterLevel value)
{
	return i_cal_vcard_parameter_new_full (vcardparameter_new_level ((vcardparameter_level) (value)), NULL);
}

/**
 * i_cal_vcard_parameter_get_level:
 * @self: the #ICalVcardParameter of LEVEL
 *
 * Returns value of the LEVEL @self
 *
 * Returns: the LEVEL value
 *
 * Since: 4.0
 *
 **/
ICalVcardParameterLevel
i_cal_vcard_parameter_get_level (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), I_CAL_VCARD_LEVEL_NONE);

	return (ICalVcardParameterLevel) (vcardparameter_get_level ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self))));
}

/**
 * i_cal_vcard_parameter_set_level:
 * @self: the #ICalVcardParameter of LEVEL
 * @value: the LEVEL value
 *
 * Sets value to the LEVEL @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_level (ICalVcardParameter *self, 
                                 ICalVcardParameterLevel value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));

	vcardparameter_set_level ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), (vcardparameter_level) (value));
}

/**
 * i_cal_vcard_parameter_new_mediatype:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding MEDIATYPE.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding MEDIATYPE
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_mediatype (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_mediatype (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_mediatype:
 * @self: the #ICalVcardParameter of MEDIATYPE
 *
 * Returns value of the MEDIATYPE @self
 *
 * Returns: the MEDIATYPE value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_mediatype (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_mediatype ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_mediatype:
 * @self: the #ICalVcardParameter of MEDIATYPE
 * @value: the MEDIATYPE value
 *
 * Sets value to the MEDIATYPE @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_mediatype (ICalVcardParameter *self, 
                                     const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_mediatype ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_phonetic:
 * @value: the #ICalVcardParameterPhonetic value
 *
 * Creates a new #ICalVcardParameter holding PHONETIC.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding PHONETIC
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_phonetic (ICalVcardParameterPhonetic value)
{
	return i_cal_vcard_parameter_new_full (vcardparameter_new_phonetic ((vcardparameter_phonetic) (value)), NULL);
}

/**
 * i_cal_vcard_parameter_get_phonetic:
 * @self: the #ICalVcardParameter of PHONETIC
 *
 * Returns value of the PHONETIC @self
 *
 * Returns: the PHONETIC value
 *
 * Since: 4.0
 *
 **/
ICalVcardParameterPhonetic
i_cal_vcard_parameter_get_phonetic (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), I_CAL_VCARD_PHONETIC_NONE);

	return (ICalVcardParameterPhonetic) (vcardparameter_get_phonetic ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self))));
}

/**
 * i_cal_vcard_parameter_set_phonetic:
 * @self: the #ICalVcardParameter of PHONETIC
 * @value: the PHONETIC value
 *
 * Sets value to the PHONETIC @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_phonetic (ICalVcardParameter *self, 
                                    ICalVcardParameterPhonetic value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));

	vcardparameter_set_phonetic ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), (vcardparameter_phonetic) (value));
}

/**
 * i_cal_vcard_parameter_new_pid:
 * @value: the value of the new #ICalVcardParameter
 *
 * Creates a new #ICalVcardParameter holding PID.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding PID
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_pid (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_pid (value), NULL);
}

/**
 * i_cal_vcard_parameter_new_pid_list:
 * @value: (transfer none): the string array as a value for the new ICalVcardParameter holding PID
 *
 * Creates a new #ICalVcardParameter holding PID.
 *
 * Note: this uses a copy of the string array, not
 * the one stored in the @value
 *
 * Returns: (transfer full) (nullable): a new #ICalVcardParameter holding PID
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_pid_list (const ICalVcardStrArray *value)
{
    vcardstrarray *val;
    g_return_val_if_fail(value != NULL, NULL);
    val = (vcardstrarray *)i_cal_object_get_native((ICalObject *)value);
    if (val == NULL) {
        return NULL;
    }
    return i_cal_vcard_parameter_new_full(vcardparameter_new_pid_list(vcardstrarray_clone(val)), NULL);
}

/**
 * i_cal_vcard_parameter_get_pid:
 * @self: the #ICalVcardParameter of PID
 *
 * Gets the value of the @self of PID.
 *
 * Note: this returns copy of the string array, not the one stored
 * in the @self
 *
 * Returns: (transfer full): the #ICalVcardStrArray value of the @self
 *
 * Since: 4.0
 *
 **/
ICalVcardStrArray *
i_cal_vcard_parameter_get_pid (const ICalVcardParameter *self)
{
    vcardstrarray *val;
    g_return_val_if_fail(self != NULL, NULL);
    val = vcardparameter_get_pid((vcardparameter *)i_cal_object_get_native((ICalObject *)self));
    if (val == NULL) {
        return NULL;
    }
    return i_cal_vcard_str_array_new_full(vcardstrarray_clone(val), NULL);
}

/**
 * i_cal_vcard_parameter_set_pid:
 * @self: the #ICalVcardParameter of PID
 * @value: the string array value
 *
 * Sets the value of the @self of PID.
 *
 * Note: this uses a copy of the string array, not the one stored
 * in the @value
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_pid (ICalVcardParameter *self, 
                               const ICalVcardStrArray *value)
{
    g_return_if_fail(self != NULL);
    vcardparameter_set_pid((vcardparameter *)i_cal_object_get_native((ICalObject *)self),
        vcardstrarray_clone((vcardstrarray *)i_cal_object_get_native((ICalObject *)value)));
}

/**
 * i_cal_vcard_parameter_get_pid_size:
 * @self: the #ICalVcardParameter of PID
 *
 * Returns number of elements in the @self of PID
 *
 * Returns: number of elements
 *
 * Since: 4.0
 *
 **/
gsize
i_cal_vcard_parameter_get_pid_size (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), 0);

	return vcardparameter_get_pid_size ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_get_pid_nth:
 * @self: the #ICalVcardParameter of PID
 * @position: Position of the PID item to get
 *
 * Returns the n-th element of the @self of PID
 *
 * Returns: (nullable): n-th element of the PID @self
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_pid_nth (const ICalVcardParameter *self, 
                                   gsize position)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_pid_nth ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), position);
}

/**
 * i_cal_vcard_parameter_add_pid:
 * @self: the #ICalVcardParameter of PID
 * @value: the string to add into the @self
 *
 * Adds a string into the @self of PID.
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_add_pid (ICalVcardParameter *self, 
                               const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_add_pid ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_remove_pid:
 * @self: the #ICalVcardParameter of PID
 * @value: the string to remove from the @self
 *
 * Removes a string from the @self of PID.
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_remove_pid (ICalVcardParameter *self, 
                                  const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_remove_pid ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_pref:
 * @value: the integer value
 *
 * Creates a new #ICalVcardParameter holding PREF.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding PREF
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_pref (gint value)
{
	return i_cal_vcard_parameter_new_full (vcardparameter_new_pref (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_pref:
 * @self: the #ICalVcardParameter of PREF
 *
 * Returns value of the PREF @self
 *
 * Returns: the PREF value
 *
 * Since: 4.0
 *
 **/
gint
i_cal_vcard_parameter_get_pref (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), 0);

	return vcardparameter_get_pref ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_pref:
 * @self: the #ICalVcardParameter of PREF
 * @value: the PREF value
 *
 * Sets value to the PREF @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_pref (ICalVcardParameter *self, 
                                gint value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));

	vcardparameter_set_pref ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_propid:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding PROPID.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding PROPID
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_propid (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_propid (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_propid:
 * @self: the #ICalVcardParameter of PROPID
 *
 * Returns value of the PROPID @self
 *
 * Returns: the PROPID value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_propid (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_propid ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_propid:
 * @self: the #ICalVcardParameter of PROPID
 * @value: the PROPID value
 *
 * Sets value to the PROPID @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_propid (ICalVcardParameter *self, 
                                  const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_propid ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_script:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding SCRIPT.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding SCRIPT
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_script (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_script (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_script:
 * @self: the #ICalVcardParameter of SCRIPT
 *
 * Returns value of the SCRIPT @self
 *
 * Returns: the SCRIPT value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_script (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_script ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_script:
 * @self: the #ICalVcardParameter of SCRIPT
 * @value: the SCRIPT value
 *
 * Sets value to the SCRIPT @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_script (ICalVcardParameter *self, 
                                  const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_script ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_servicetype:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding SERVICETYPE.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding SERVICETYPE
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_servicetype (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_servicetype (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_servicetype:
 * @self: the #ICalVcardParameter of SERVICETYPE
 *
 * Returns value of the SERVICETYPE @self
 *
 * Returns: the SERVICETYPE value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_servicetype (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_servicetype ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_servicetype:
 * @self: the #ICalVcardParameter of SERVICETYPE
 * @value: the SERVICETYPE value
 *
 * Sets value to the SERVICETYPE @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_servicetype (ICalVcardParameter *self, 
                                       const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_servicetype ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_sortas:
 * @value: the value of the new #ICalVcardParameter
 *
 * Creates a new #ICalVcardParameter holding SORTAS.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding SORTAS
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_sortas (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_sortas (value), NULL);
}

/**
 * i_cal_vcard_parameter_new_sortas_list:
 * @value: (transfer none): the string array as a value for the new ICalVcardParameter holding SORTAS
 *
 * Creates a new #ICalVcardParameter holding SORTAS.
 *
 * Note: this uses a copy of the string array, not
 * the one stored in the @value
 *
 * Returns: (transfer full) (nullable): a new #ICalVcardParameter holding SORTAS
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_sortas_list (const ICalVcardStrArray *value)
{
    vcardstrarray *val;
    g_return_val_if_fail(value != NULL, NULL);
    val = (vcardstrarray *)i_cal_object_get_native((ICalObject *)value);
    if (val == NULL) {
        return NULL;
    }
    return i_cal_vcard_parameter_new_full(vcardparameter_new_sortas_list(vcardstrarray_clone(val)), NULL);
}

/**
 * i_cal_vcard_parameter_get_sortas:
 * @self: the #ICalVcardParameter of SORTAS
 *
 * Gets the value of the @self of SORTAS.
 *
 * Note: this returns copy of the string array, not the one
 * stored in the @self
 *
 * Returns: (transfer full): the #ICalVcardStrArray value of the @self
 *
 * Since: 4.0
 *
 **/
ICalVcardStrArray *
i_cal_vcard_parameter_get_sortas (const ICalVcardParameter *self)
{
    vcardstrarray *val;
    g_return_val_if_fail(self != NULL, NULL);
    val = vcardparameter_get_sortas((vcardparameter *)i_cal_object_get_native((ICalObject *)self));
    if (val == NULL) {
        return NULL;
    }
    return i_cal_vcard_str_array_new_full(vcardstrarray_clone(val), NULL);
}

/**
 * i_cal_vcard_parameter_set_sortas:
 * @self: the #ICalVcardParameter of SORTAS
 * @value: the string array value
 *
 * Sets the value of the @self of SORTAS.
 *
 * Note: this uses a copy of the string array, not the one
 * stored in the @value
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_sortas (ICalVcardParameter *self, 
                                  const ICalVcardStrArray *value)
{
    g_return_if_fail(self != NULL);
    vcardparameter_set_sortas((vcardparameter *)i_cal_object_get_native((ICalObject *)self),
        vcardstrarray_clone((vcardstrarray *)i_cal_object_get_native((ICalObject *)value)));
}

/**
 * i_cal_vcard_parameter_get_sortas_size:
 * @self: the #ICalVcardParameter of SORTAS
 *
 * Returns number of elements in the @self of SORTAS
 *
 * Returns: number of elements
 *
 * Since: 4.0
 *
 **/
gsize
i_cal_vcard_parameter_get_sortas_size (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), 0);

	return vcardparameter_get_sortas_size ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_get_sortas_nth:
 * @self: the #ICalVcardParameter of SORTAS
 * @position: Position of the SORTAS item to get
 *
 * Returns the n-th element of the @self of SORTAS
 *
 * Returns: (nullable): n-th element of the SORTAS @self
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_sortas_nth (const ICalVcardParameter *self, 
                                      gsize position)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_sortas_nth ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), position);
}

/**
 * i_cal_vcard_parameter_add_sortas:
 * @self: the #ICalVcardParameter of SORTAS
 * @value: the string to add into the @self
 *
 * Adds a string into the @self of SORTAS.
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_add_sortas (ICalVcardParameter *self, 
                                  const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_add_sortas ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_remove_sortas:
 * @self: the #ICalVcardParameter of SORTAS
 * @value: the string to remove from the @self
 *
 * Removes a string from the @self of SORTAS.
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_remove_sortas (ICalVcardParameter *self, 
                                     const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_remove_sortas ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_type:
 * @value: the #ICalVcardParameterType value of the new #ICalVcardParameter
 *
 * Creates a new #ICalVcardParameter holding TYPE.
 *
 * Returns: (transfer full) (nullable): a new #ICalVcardParameter holding TYPE
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_type (ICalVcardParameterType value)
{
	return i_cal_vcard_parameter_new_full (vcardparameter_new_type ((vcardparameter_type) (value)), NULL);
}

/**
 * i_cal_vcard_parameter_new_type_list:
 * @value: the array value to use for the new #ICalVcardParameter
 *
 * Note: this uses a copy of the array, not the one stored in the @value
 *
 * Returns: (transfer full) (nullable): a new #ICalVcardParameter holding TYPE
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_type_list (const ICalVcardEnumArray *value)
{
    vcardenumarray *val;
    g_return_val_if_fail(value != NULL, NULL);
    val = (vcardenumarray *)i_cal_object_get_native((ICalObject *)value);
    if (val == NULL) {
        return NULL;
    }
    return i_cal_vcard_parameter_new_full(vcardparameter_new_type_list(vcardenumarray_clone(val)), NULL);
}

/**
 * i_cal_vcard_parameter_get_type_value:
 * @self: the #ICalVcardParameter of TYPE
 *
 * Gets the value of the @self of TYPE.
 *
 * Note: this returns copy of the array, not the one stored in
 * the @self
 *
 * Returns: (transfer full): the #ICalVcardEnumArray value of the @self
 *
 * Since: 4.0
 *
 **/
ICalVcardEnumArray *
i_cal_vcard_parameter_get_type_value (const ICalVcardParameter *self)
{
    vcardenumarray *val;
    g_return_val_if_fail(self != NULL, NULL);
    val = vcardparameter_get_type((vcardparameter *)i_cal_object_get_native((ICalObject *)self));
    if (val == NULL) {
        return NULL;
    }
    return i_cal_vcard_enum_array_new_full(vcardenumarray_clone(val), NULL);
}

/**
 * i_cal_vcard_parameter_set_type_value:
 * @self: the #ICalVcardParameter of TYPE
 * @value: the array value
 *
 * Sets the value of the @self of TYPE.
 *
 * Note: this uses a copy of the array, not the one stored in
 * the @value
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_type_value (ICalVcardParameter *self, 
                                      const ICalVcardEnumArray *value)
{
    g_return_if_fail(self != NULL);
    vcardparameter_set_type((vcardparameter *)i_cal_object_get_native((ICalObject *)self),
        vcardenumarray_clone((vcardenumarray *)i_cal_object_get_native((ICalObject *)value)));
}

/**
 * i_cal_vcard_parameter_get_type_size:
 * @self: the #ICalVcardParameter of TYPE
 *
 * Returns number of elements in the @self of TYPE
 *
 * Returns: number of elements
 *
 * Since: 4.0
 *
 **/
gsize
i_cal_vcard_parameter_get_type_size (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), 0);

	return vcardparameter_get_type_size ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_get_type_nth:
 * @self: the #ICalVcardParameter of TYPE
 * @position: the position of the element
 *
 * Returns the n-th element of the @self of TYPE
 *
 * Returns: the n-th element
 *
 * Since: 4.0
 *
 **/
ICalVcardParameterType
i_cal_vcard_parameter_get_type_nth (const ICalVcardParameter *self, 
                                    gsize position)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), I_CAL_VCARD_TYPE_NONE);

	return (ICalVcardParameterType) (vcardparameter_get_type_nth ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), position));
}

/**
 * i_cal_vcard_parameter_add_type:
 * @self: the #ICalVcardParameter of TYPE
 * @value: the #ICalVcardParameterType
 * @x_value: (nullable): an X name, or %NULL; when set, the @value should a corresponding X value
 *
 * Adds an element.
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_add_type (ICalVcardParameter *self, 
                                ICalVcardParameterType value, 
                                const gchar *x_value)
{
    vcardenumarray_element elem = { 0, };
    g_return_if_fail(self != NULL);
    elem.val = value;
    elem.xvalue = x_value;
    vcardparameter_add_type((vcardparameter *)i_cal_object_get_native((ICalObject *)self), &elem);
}

/**
 * i_cal_vcard_parameter_remove_type:
 * @self: the #ICalVcardParameter of TYPE
 * @value: the #ICalVcardParameterType
 * @x_value: (nullable): an X name, or %NULL; when set, the @value should be a corresponding X value
 *
 * Removes an element with the provided value.
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_remove_type (ICalVcardParameter *self, 
                                   ICalVcardParameterType value, 
                                   const gchar *x_value)
{
    vcardenumarray_element elem = { 0, };
    g_return_if_fail(self != NULL);
    elem.val = value;
    elem.xvalue = x_value;
    vcardparameter_remove_type((vcardparameter *)i_cal_object_get_native((ICalObject *)self), &elem);
}

/**
 * i_cal_vcard_parameter_new_tz:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding TZ.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding TZ
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_tz (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_tz (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_tz:
 * @self: the #ICalVcardParameter of TZ
 *
 * Returns value of the TZ @self
 *
 * Returns: the TZ value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_tz (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_tz ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_tz:
 * @self: the #ICalVcardParameter of TZ
 * @value: the TZ value
 *
 * Sets value to the TZ @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_tz (ICalVcardParameter *self, 
                              const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_tz ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_username:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding USERNAME.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding USERNAME
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_username (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_username (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_username:
 * @self: the #ICalVcardParameter of USERNAME
 *
 * Returns value of the USERNAME @self
 *
 * Returns: the USERNAME value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_username (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_username ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_username:
 * @self: the #ICalVcardParameter of USERNAME
 * @value: the USERNAME value
 *
 * Sets value to the USERNAME @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_username (ICalVcardParameter *self, 
                                    const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_username ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_value:
 * @value: the #ICalVcardParameterValue value
 *
 * Creates a new #ICalVcardParameter holding VALUE.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding VALUE
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_value (ICalVcardParameterValue value)
{
	return i_cal_vcard_parameter_new_full (vcardparameter_new_value ((vcardparameter_value) (value)), NULL);
}

/**
 * i_cal_vcard_parameter_get_value:
 * @self: the #ICalVcardParameter of VALUE
 *
 * Returns value of the VALUE @self
 *
 * Returns: the VALUE value
 *
 * Since: 4.0
 *
 **/
ICalVcardParameterValue
i_cal_vcard_parameter_get_value (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), I_CAL_VCARD_VALUE_NONE);

	return (ICalVcardParameterValue) (vcardparameter_get_value ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self))));
}

/**
 * i_cal_vcard_parameter_set_value:
 * @self: the #ICalVcardParameter of VALUE
 * @value: the VALUE value
 *
 * Sets value to the VALUE @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_value (ICalVcardParameter *self, 
                                 ICalVcardParameterValue value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));

	vcardparameter_set_value ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), (vcardparameter_value) (value));
}

/**
 * i_cal_vcard_parameter_new_x:
 * @value: the text value
 *
 * Creates a new #ICalVcardParameter holding X.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding X
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_x (const gchar *value)
{
    g_return_val_if_fail (value != NULL, NULL);

	return i_cal_vcard_parameter_new_full (vcardparameter_new_x (value), NULL);
}

/**
 * i_cal_vcard_parameter_get_x:
 * @self: the #ICalVcardParameter of X
 *
 * Returns value of the X @self
 *
 * Returns: the X value
 *
 * Since: 4.0
 *
 **/
const gchar *
i_cal_vcard_parameter_get_x (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), NULL);

	return vcardparameter_get_x ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)));
}

/**
 * i_cal_vcard_parameter_set_x:
 * @self: the #ICalVcardParameter of X
 * @value: the X value
 *
 * Sets value to the X @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_x (ICalVcardParameter *self, 
                             const gchar *value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));
    g_return_if_fail (value != NULL);

	vcardparameter_set_x ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), value);
}

/**
 * i_cal_vcard_parameter_new_xliccomparetype:
 * @value: the #ICalVcardParameterXliccomparetype value
 *
 * Creates a new #ICalVcardParameter holding XLICCOMPARETYPE.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding XLICCOMPARETYPE
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_xliccomparetype (ICalVcardParameterXliccomparetype value)
{
	return i_cal_vcard_parameter_new_full (vcardparameter_new_xliccomparetype ((vcardparameter_xliccomparetype) (value)), NULL);
}

/**
 * i_cal_vcard_parameter_get_xliccomparetype:
 * @self: the #ICalVcardParameter of XLICCOMPARETYPE
 *
 * Returns value of the XLICCOMPARETYPE @self
 *
 * Returns: the XLICCOMPARETYPE value
 *
 * Since: 4.0
 *
 **/
ICalVcardParameterXliccomparetype
i_cal_vcard_parameter_get_xliccomparetype (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), I_CAL_VCARD_XLICCOMPARETYPE_NONE);

	return (ICalVcardParameterXliccomparetype) (vcardparameter_get_xliccomparetype ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self))));
}

/**
 * i_cal_vcard_parameter_set_xliccomparetype:
 * @self: the #ICalVcardParameter of XLICCOMPARETYPE
 * @value: the XLICCOMPARETYPE value
 *
 * Sets value to the XLICCOMPARETYPE @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_xliccomparetype (ICalVcardParameter *self, 
                                           ICalVcardParameterXliccomparetype value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));

	vcardparameter_set_xliccomparetype ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), (vcardparameter_xliccomparetype) (value));
}

/**
 * i_cal_vcard_parameter_new_xlicerrortype:
 * @value: the #ICalVcardParameterXlicerrortype value
 *
 * Creates a new #ICalVcardParameter holding XLICERRORTYPE.
 *
 * Returns: (transfer full): a new #ICalVcardParameter holding XLICERRORTYPE
 *
 * Since: 4.0
 *
 **/
ICalVcardParameter *
i_cal_vcard_parameter_new_xlicerrortype (ICalVcardParameterXlicerrortype value)
{
	return i_cal_vcard_parameter_new_full (vcardparameter_new_xlicerrortype ((vcardparameter_xlicerrortype) (value)), NULL);
}

/**
 * i_cal_vcard_parameter_get_xlicerrortype:
 * @self: the #ICalVcardParameter of XLICERRORTYPE
 *
 * Returns value of the XLICERRORTYPE @self
 *
 * Returns: the XLICERRORTYPE value
 *
 * Since: 4.0
 *
 **/
ICalVcardParameterXlicerrortype
i_cal_vcard_parameter_get_xlicerrortype (const ICalVcardParameter *self)
{
    g_return_val_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self), I_CAL_VCARD_XLICERRORTYPE_NONE);

	return (ICalVcardParameterXlicerrortype) (vcardparameter_get_xlicerrortype ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self))));
}

/**
 * i_cal_vcard_parameter_set_xlicerrortype:
 * @self: the #ICalVcardParameter of XLICERRORTYPE
 * @value: the XLICERRORTYPE value
 *
 * Sets value to the XLICERRORTYPE @self
 *
 * Since: 4.0
 *
 **/
void
i_cal_vcard_parameter_set_xlicerrortype (ICalVcardParameter *self, 
                                         ICalVcardParameterXlicerrortype value)
{
    g_return_if_fail (I_CAL_VCARD_IS_PARAMETER ((ICalVcardParameter*)self));

	vcardparameter_set_xlicerrortype ((vcardparameter *)i_cal_object_get_native (I_CAL_OBJECT ((ICalObject *)self)), (vcardparameter_xlicerrortype) (value));
}
