## Modulemd.Module Modulemd.Module — Collects all information about a module: all of its streams, defaults, etc. |

## Stability Level

Stable, unless otherwise indicated

## Functions

GStrv | modulemd_module_get_stream_names_as_strv ()
ModulemdModule * | modulemd_module_copy ()
gboolean | modulemd_module_validate ()
const gchar * | modulemd_module_get_module_name ()
GPtrArray * | modulemd_module_get_all_streams ()
GPtrArray * | modulemd_module_get_streams_by_stream_name_as_list ()
ModulemdModuleStream * | modulemd_module_get_stream_by_NSVC ()
GPtrArray * | modulemd_module_search_streams ()
GPtrArray * | modulemd_module_search_streams_by_glob ()
GPtrArray * | modulemd_module_search_streams_by_nsvca_glob ()
ModulemdModuleStream * | modulemd_module_get_stream_by_NSVCA ()
void | modulemd_module_remove_streams_by_NSVCA ()
#define | modulemd_module_remove_streams_by_name()
ModulemdDefaults * | modulemd_module_get_defaults ()
ModulemdTranslation * | modulemd_module_get_translation ()
GPtrArray * | modulemd_module_get_obsoletes ()
ModulemdObsoletes * | modulemd_module_get_newest_active_obsoletes ()
void | modulemd_module_clear_xmds ()

## Properties

char * | module-name | Read / Write / Construct Only

## Types and Values

#define | MODULEMD_TYPE_MODULE
| ModulemdModule

## Object Hierarchy

        GObject
        ╰── ModulemdModule

## Description

## Functions

### modulemd_module_get_stream_names_as_strv ()

    GStrv
    modulemd_module_get_stream_names_as_strv
                                   (ModulemdModule *self);

[rename-to modulemd_module_get_stream_names]

#### Parameters

self | This ModulemdModule object. |

#### Returns

An ordered GStrv list of stream names in this module.

[transfer full]

Since: 2.6

### modulemd_module_copy ()

    ModulemdModule *
    modulemd_module_copy (ModulemdModule *self);

#### Parameters

self | This ModulemdModule object. | [in]

#### Returns

A deep copy of this ModulemdModule object.

[transfer full]

Since: 2.0

### modulemd_module_validate ()

    gboolean
    modulemd_module_validate (ModulemdModule *self,
                              GError **error);

#### Parameters

self | This ModulemdModule object. | [in]
error | A GError containing the reason the object failed validation. NULL if the validation passed. | [out]

#### Returns

TRUE if validation passed, FALSE and sets `error` if failed.

Since: 2.0

### modulemd_module_get_module_name ()

    const gchar *
    modulemd_module_get_module_name (ModulemdModule *self);

#### Parameters

self | This ModulemdModule object. |

#### Returns

The module name.

[transfer none]

Since: 2.0

### modulemd_module_get_all_streams ()

    GPtrArray *
    modulemd_module_get_all_streams (ModulemdModule *self);

#### Parameters

self | This ModulemdModule object. |

#### Returns

A list of all available stream objects associated with this module. There may be multiple streams with the same name and different version and context. The order of items in this list is not guaranteed.

[transfer none][element-type ModulemdModuleStream]

Since: 2.0

### modulemd_module_get_streams_by_stream_name_as_list ()

    GPtrArray *
    modulemd_module_get_streams_by_stream_name_as_list
                                   (ModulemdModule *self,
                                    const gchar *stream_name);

[rename-to modulemd_module_get_streams_by_stream_name]

#### Parameters

self | This ModulemdModule object. |
stream_name | The name of the stream to retrieve. |

#### Returns

A list of all available stream objects associated with a particular stream name, sorted highest to lowest by the version. The same version may have more than one associated context.

[transfer container][element-type ModulemdModuleStream]

Since: 2.0

### modulemd_module_get_stream_by_NSVC ()

    ModulemdModuleStream *
    modulemd_module_get_stream_by_NSVC (ModulemdModule *self,
                                        const gchar *stream_name,
                                        guint64 version,
                                        const gchar *context);

`modulemd_module_get_stream_by_NSVC` has been deprecated since version 2.2 and should not be used in newly-written code.

Use `modulemd_module_get_stream_by_NSVCA()` instead.

#### Parameters

self | This ModulemdModule object. |
stream_name | The name of the stream to retrieve. |
version | The version of the stream to retrieve. |
context | The context of the stream to retrieve. |

#### Returns

The requested stream object or NULL if no match was found.

[transfer none]

Since: 2.0

### modulemd_module_search_streams ()

    GPtrArray *
    modulemd_module_search_streams (ModulemdModule *self,
                                    const gchar *stream_name,
                                    guint64 version,
                                    const gchar *context,
                                    const gchar *arch);

#### Parameters

self | This ModulemdModule object. |
stream_name | The name of the stream to retrieve. |
version | The version of the stream to retrieve. If set to zero, the version is not included in the search. |
context | The context of the stream to retrieve. If NULL, the context is not included in the search. | [nullable]
arch | The processor architecture of the stream to retrieve. If NULL, the architecture is not included in the search. | [nullable]

#### Returns

The list of stream objects matching the requested parameters. This function cannot fail, but it may return a zero-length list if no matches were found. The returned streams will be in a predictable order, sorted first by stream name, then by version (highest to lowest), then by context and finally by architecture.

[transfer container][element-type ModulemdModuleStream]

Since: 2.5

### modulemd_module_search_streams_by_glob ()

    GPtrArray *
    modulemd_module_search_streams_by_glob
                                   (ModulemdModule *self,
                                    const gchar *stream_name,
                                    const gchar *version,
                                    const gchar *context,
                                    const gchar *arch);

All arguments to this method will be compared using fnmatch(3).

#### Parameters

self | This ModulemdModule object. |
stream_name | The name of the stream to retrieve. If NULL, will search all streams. | [nullable]
version | The version of the stream to retrieve. If NULL, will search all versions. | [nullable]
context | The context of the stream to retrieve. If NULL, will search all contexts. | [nullable]
arch | The processor architecture of the stream to retrieve. If NULL, the architecture is not included in the search. | [nullable]

#### Returns

The list of stream objects matching all of the requested parameters. This function cannot fail, but it may return a zero-length list if no matches were found. The returned streams will be in a predictable order, sorted first by module name, then stream name, then by version (highest first), then by context and finally by architecture.

[transfer container][element-type ModulemdModuleStream]

Since: 2.9

### modulemd_module_search_streams_by_nsvca_glob ()

    GPtrArray *
    modulemd_module_search_streams_by_nsvca_glob
                                   (ModulemdModule *self,
                                    const gchar *nsvca_pattern);

#### Parameters

self | This ModulemdModule object. |
nsvca_pattern | A glob pattern to match against the NSVCA strings of the ModulemdModuleStream objects in this module. If NULL, this will match all NSVCAs. | [nullable]

#### Returns

An array of ModulemdModuleStream objects whose NSVCA string matches the provided pattern. This function cannot fail, but may return an array of zero entries if the pattern did not match any streams. The returned streams will be in a predictable order, sorted first by module name, then stream name, then by version (highest first), then by context and finally by architecture.

[transfer container][element-type ModulemdModuleStream]

Since: 2.9

### modulemd_module_get_stream_by_NSVCA ()

    ModulemdModuleStream *
    modulemd_module_get_stream_by_NSVCA (ModulemdModule *self,
                                         const gchar *stream_name,
                                         guint64 version,
                                         const gchar *context,
                                         const gchar *arch,
                                         GError **error);

#### Parameters

self | This ModulemdModule object. |
stream_name | The name of the stream to retrieve. |
version | The version of the stream to retrieve. If set to zero, the version is not included in the search. |
context | The context of the stream to retrieve. If NULL, the context is not included in the search. | [nullable]
arch | The processor architecture of the stream to retrieve. If NULL, the architecture is not included in the search. | [nullable]
error | A GError indicating the reason this function failed to retrieve exactly one ModulemdModuleStream. | [out]

#### Returns

The requested stream object. NULL and sets `error` appropriately if the provided information is not sufficient to return exactly one ModulemdModuleStream result.

[transfer none]

Since: 2.2

### modulemd_module_remove_streams_by_NSVCA ()

    void
    modulemd_module_remove_streams_by_NSVCA
                                   (ModulemdModule *self,
                                    const gchar *stream_name,
                                    guint64 version,
                                    const gchar *context,
                                    const gchar *arch);

Remove one or more ModulemdModuleStream objects from this ModulemdModule that match the provided parameters.

#### Parameters

self | This ModulemdModule object. |
stream_name | The name of the stream to remove. | [not nullable]
version | The version of the stream to remove. If set to zero, matches all versions. |
context | The context of the stream to remove. If NULL, matches all stream contexts. | [nullable]
arch | The processor architecture of the stream to remove. If NULL, matches all architectures. | [nullable]

Since: 2.3

### modulemd_module_remove_streams_by_name()

    #define             modulemd_module_remove_streams_by_name(self, stream_name)

Remove one or more ModulemdModuleStream objects from this ModulemdModule that match the provided stream name.

#### Parameters

self | This ModulemdModule object. |
stream_name | The name of the stream to remove. | [not nullable]

Since: 2.3

### modulemd_module_get_defaults ()

    ModulemdDefaults *
    modulemd_module_get_defaults (ModulemdModule *self);

#### Parameters

self | This ModulemdModule object. |

#### Returns

The defaults of this module or NULL if none.

[transfer none]

Since: 2.0

### modulemd_module_get_translation ()

    ModulemdTranslation *
    modulemd_module_get_translation (ModulemdModule *self,
                                     const gchar *stream);

#### Parameters

self | This ModulemdModule object. |
stream | The stream to look up translations for. |

#### Returns

The set of translations attached to streams.

[transfer none]

Since: 2.8

### modulemd_module_get_obsoletes ()

    GPtrArray *
    modulemd_module_get_obsoletes (ModulemdModule *self);

#### Parameters

self | This ModulemdModule object. | [in]

#### Returns

A list of all obsoletes attached to this module. These are pointers to the internal memory objects and must not be modified or freed.

[transfer none][element-type ModulemdObsoletes]

Since: 2.10

### modulemd_module_get_newest_active_obsoletes ()

    ModulemdObsoletes *
    modulemd_module_get_newest_active_obsoletes
                                   (ModulemdModule *self,
                                    const gchar *stream,
                                    const gchar *context);

#### Parameters

self | This ModulemdModule object. | [in]
stream | The stream to look up obsoletes for. | [in]
context | The stream context to look up obsoletes for. | [in][nullable]

#### Returns

The newest active obsoletes attached to this module with specified stream and context (when eol_date is not set or it already occured the obsoletes is active). If no context is passed it matches obsoletes without context.

[transfer none]

Since: 2.10

### modulemd_module_clear_xmds ()

    void
    modulemd_module_clear_xmds (ModulemdModule *self);

Iterates through all ModulemdModuleStream entries in this ModulemdModule and removes any XMD sections that are present. This is generally done to trim down the metadata to only the portions that are useful to the package manager.

#### Parameters

self | This ModulemdModule object. | [in]

Since: 2.14

## Types and Values

### MODULEMD_TYPE_MODULE

    #define MODULEMD_TYPE_MODULE (modulemd_module_get_type ())

### ModulemdModule

    typedef struct _ModulemdModule ModulemdModule;

## Property Details

### The `“module-name”` property

      “module-name”              char *

The name of this module.

Owner: ModulemdModule

Flags: Read / Write / Construct Only

Default value: NULL