Skip to content

feat(medialive): add Elemental MediaLive modules to community collection#2353

Open
r363x wants to merge 12 commits intoansible-collections:mainfrom
buxell:github-integration-emla-1
Open

feat(medialive): add Elemental MediaLive modules to community collection#2353
r363x wants to merge 12 commits intoansible-collections:mainfrom
buxell:github-integration-emla-1

Conversation

@r363x
Copy link
Copy Markdown

@r363x r363x commented Oct 29, 2025

SUMMARY

Adds new modules for AWS Elemental MediaLive to enable infrastructure-as-code management of MediaLive resources. These modules support automation of MediaLive configurations including Elemental Anywhere (bring-your-own-device) setups.

These modules expand the AWS collection's coverage to include MediaLive services, particularly useful for organizations managing broadcast and streaming workflows through Ansible automation.

ISSUE TYPE
  • New Module Pull Request
COMPONENT NAME
  • medialive_sdi_source (+_info)
  • medialive_node (+_info)
  • medialive_node_registration
  • medialive_network (+_info)
  • medialive_input (+_info)
  • medialive_cluster (+_info)
  • medialive_channel_placement_group (+_info)
ADDITIONAL INFORMATION

This is a new version of PR 2318. Differences are:

  • rebased off of the latest changes in main
  • removed the medialive_channel module

A companion PR has been created in the aws.terminator repository that adds the required MediaLive IAM permissions needed for the integration tests included in this PR to pass. Once that PR is merged, the CI failures here should be resolved.

mattclay/aws-terminator#315

Testing completed:

  • Integration tests added for each module
  • Tested with Python 3.x
  • Documentation includes examples for all modules
  • Change logs updated
  • Module arguments documented with type hints and descriptions
  • Return values documented for all modules

Contributors:

buxell and others added 12 commits October 22, 2025 14:35
Adds new modules for AWS Elemental MediaLive management:
- medialive_sdi_source: Manage SDI source configurations
- medialive_node: Handle node operations
- medialive_network: Configure network settings
- medialive_input: Manage input configurations
- medialive_cluster: Control cluster operations
- medialive_channel_placement_group: Manage channel placement groups

This enhancement enables comprehensive management of MediaLive resources
through Ansible automation, supporting bring-your-own-device Elemental
Anywhere systems.

Co-authored-by: Sergey Papyan <spapyan@amazon.com>
Co-authored-by: David Teach <dteach@amazon.com>
Co-authored-by: Brenton Buxell <buxell@amazon.com>
@github-actions
Copy link
Copy Markdown

Docs Build 📝

Thank you for contribution!✨

The docsite for this PR is available for download as an artifact from this run:
https://github.com/ansible-collections/community.aws/actions/runs/18920120886

You can compare to the docs for the main branch here:
https://ansible-collections.github.io/community.aws/branch/main

File changes:

  • A collections/community/aws/medialive_channel_placement_group_info_module.html
  • A collections/community/aws/medialive_channel_placement_group_module.html
  • A collections/community/aws/medialive_cluster_info_module.html
  • A collections/community/aws/medialive_cluster_module.html
  • A collections/community/aws/medialive_input_info_module.html
  • A collections/community/aws/medialive_input_module.html
  • A collections/community/aws/medialive_network_info_module.html
  • A collections/community/aws/medialive_network_module.html
  • A collections/community/aws/medialive_node_info_module.html
  • A collections/community/aws/medialive_node_module.html
  • A collections/community/aws/medialive_node_registration_module.html
  • A collections/community/aws/medialive_sdi_source_info_module.html
  • A collections/community/aws/medialive_sdi_source_module.html
  • M collections/community/aws/index.html
  • M collections/community/aws/lightsail_static_ip_module.html
  • M collections/community/aws/mq_broker_module.html
  • M collections/index_module.html
Click to see the diff comparison.

NOTE: only file modifications are shown here. New and deleted files are excluded.
See the file list and check the published docs to see those files.

diff --git a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/index.html b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/index.html
index 75011d0..e4e6c26 100644
--- a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/index.html
+++ b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/index.html
@@ -266,6 +266,19 @@
 <li><p><a class="reference internal" href="lightsail_module.html#ansible-collections-community-aws-lightsail-module"><span class="std std-ref">lightsail module</span></a> – Manage instances in AWS Lightsail</p></li>
 <li><p><a class="reference internal" href="lightsail_snapshot_module.html#ansible-collections-community-aws-lightsail-snapshot-module"><span class="std std-ref">lightsail_snapshot module</span></a> – Creates snapshots of AWS Lightsail instances</p></li>
 <li><p><a class="reference internal" href="lightsail_static_ip_module.html#ansible-collections-community-aws-lightsail-static-ip-module"><span class="std std-ref">lightsail_static_ip module</span></a> – Manage static IP addresses in AWS Lightsail</p></li>
+<li><p><a class="reference internal" href="medialive_channel_placement_group_module.html#ansible-collections-community-aws-medialive-channel-placement-group-module"><span class="std std-ref">medialive_channel_placement_group module</span></a> – Manage AWS MediaLive Channel Placement Groups</p></li>
+<li><p><a class="reference internal" href="medialive_channel_placement_group_info_module.html#ansible-collections-community-aws-medialive-channel-placement-group-info-module"><span class="std std-ref">medialive_channel_placement_group_info module</span></a> – Get information about an AWS MediaLive Channel Placement Group</p></li>
+<li><p><a class="reference internal" href="medialive_cluster_module.html#ansible-collections-community-aws-medialive-cluster-module"><span class="std std-ref">medialive_cluster module</span></a> – Manage AWS MediaLive Anywhere clusters</p></li>
+<li><p><a class="reference internal" href="medialive_cluster_info_module.html#ansible-collections-community-aws-medialive-cluster-info-module"><span class="std std-ref">medialive_cluster_info module</span></a> – Gather MediaLive Anywhere cluster info</p></li>
+<li><p><a class="reference internal" href="medialive_input_module.html#ansible-collections-community-aws-medialive-input-module"><span class="std std-ref">medialive_input module</span></a> – Manage AWS MediaLive Anywhere inputs</p></li>
+<li><p><a class="reference internal" href="medialive_input_info_module.html#ansible-collections-community-aws-medialive-input-info-module"><span class="std std-ref">medialive_input_info module</span></a> – Gather MediaLive Anywhere input info</p></li>
+<li><p><a class="reference internal" href="medialive_network_module.html#ansible-collections-community-aws-medialive-network-module"><span class="std std-ref">medialive_network module</span></a> – Manage AWS MediaLive Anywhere networks</p></li>
+<li><p><a class="reference internal" href="medialive_network_info_module.html#ansible-collections-community-aws-medialive-network-info-module"><span class="std std-ref">medialive_network_info module</span></a> – Gather MediaLive Anywhere network info</p></li>
+<li><p><a class="reference internal" href="medialive_node_module.html#ansible-collections-community-aws-medialive-node-module"><span class="std std-ref">medialive_node module</span></a> – Manage AWS MediaLive Anywhere nodes</p></li>
+<li><p><a class="reference internal" href="medialive_node_info_module.html#ansible-collections-community-aws-medialive-node-info-module"><span class="std std-ref">medialive_node_info module</span></a> – Gather AWS MediaLive Anywhere node info</p></li>
+<li><p><a class="reference internal" href="medialive_node_registration_module.html#ansible-collections-community-aws-medialive-node-registration-module"><span class="std std-ref">medialive_node_registration module</span></a> – Manage AWS MediaLive Anywhere nodes</p></li>
+<li><p><a class="reference internal" href="medialive_sdi_source_module.html#ansible-collections-community-aws-medialive-sdi-source-module"><span class="std std-ref">medialive_sdi_source module</span></a> – Manage AWS MediaLive Anywhere SDI sources</p></li>
+<li><p><a class="reference internal" href="medialive_sdi_source_info_module.html#ansible-collections-community-aws-medialive-sdi-source-info-module"><span class="std std-ref">medialive_sdi_source_info module</span></a> – Gather AWS MediaLive Anywhere SDI source info</p></li>
 <li><p><a class="reference internal" href="mq_broker_module.html#ansible-collections-community-aws-mq-broker-module"><span class="std std-ref">mq_broker module</span></a> – MQ broker management</p></li>
 <li><p><a class="reference internal" href="mq_broker_config_module.html#ansible-collections-community-aws-mq-broker-config-module"><span class="std std-ref">mq_broker_config module</span></a> – Update Amazon MQ broker configuration</p></li>
 <li><p><a class="reference internal" href="mq_broker_info_module.html#ansible-collections-community-aws-mq-broker-info-module"><span class="std std-ref">mq_broker_info module</span></a> – Retrieve MQ Broker details</p></li>
diff --git a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/lightsail_static_ip_module.html b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/lightsail_static_ip_module.html
index 1924db9..11ee40d 100644
--- a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/lightsail_static_ip_module.html
+++ b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/lightsail_static_ip_module.html
@@ -22,7 +22,7 @@
       <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../_static/js/theme.js"></script>
     <link rel="search" title="Search" href="../../../search.html" />
-    <link rel="next" title="community.aws.mq_broker module – MQ broker management" href="mq_broker_module.html" />
+    <link rel="next" title="community.aws.medialive_channel_placement_group module – Manage AWS MediaLive Channel Placement Groups" href="medialive_channel_placement_group_module.html" />
     <link rel="prev" title="community.aws.lightsail_snapshot module – Creates snapshots of AWS Lightsail instances" href="lightsail_snapshot_module.html" /><!-- extra head elements for Ansible beyond RTD Sphinx Theme -->
 
 
@@ -385,7 +385,7 @@ see <a class="reference internal" href="#ansible-collections-community-aws-light
 
 <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
         <a href="lightsail_snapshot_module.html" class="btn btn-neutral float-left" title="community.aws.lightsail_snapshot module – Creates snapshots of AWS Lightsail instances" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
-        <a href="mq_broker_module.html" class="btn btn-neutral float-right" title="community.aws.mq_broker module – MQ broker management" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="medialive_channel_placement_group_module.html" class="btn btn-neutral float-right" title="community.aws.medialive_channel_placement_group module – Manage AWS MediaLive Channel Placement Groups" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
   <hr/>
diff --git a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/mq_broker_module.html b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/mq_broker_module.html
index 49f3f3c..b8e3f0b 100644
--- a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/mq_broker_module.html
+++ b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/mq_broker_module.html
@@ -23,7 +23,7 @@
     <script src="../../../_static/js/theme.js"></script>
     <link rel="search" title="Search" href="../../../search.html" />
     <link rel="next" title="community.aws.mq_broker_config module – Update Amazon MQ broker configuration" href="mq_broker_config_module.html" />
-    <link rel="prev" title="community.aws.lightsail_static_ip module – Manage static IP addresses in AWS Lightsail" href="lightsail_static_ip_module.html" /><!-- extra head elements for Ansible beyond RTD Sphinx Theme -->
+    <link rel="prev" title="community.aws.medialive_sdi_source_info module – Gather AWS MediaLive Anywhere SDI source info" href="medialive_sdi_source_info_module.html" /><!-- extra head elements for Ansible beyond RTD Sphinx Theme -->
 
 
 
@@ -653,7 +653,7 @@ see <a class="reference internal" href="#ansible-collections-community-aws-mq-br
           
 
 <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
-        <a href="lightsail_static_ip_module.html" class="btn btn-neutral float-left" title="community.aws.lightsail_static_ip module – Manage static IP addresses in AWS Lightsail" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="medialive_sdi_source_info_module.html" class="btn btn-neutral float-left" title="community.aws.medialive_sdi_source_info module – Gather AWS MediaLive Anywhere SDI source info" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
         <a href="mq_broker_config_module.html" class="btn btn-neutral float-right" title="community.aws.mq_broker_config module – Update Amazon MQ broker configuration" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
diff --git a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/index_module.html b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/index_module.html
index 4c73fae..363567a 100644
--- a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/index_module.html
+++ b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/index_module.html
@@ -209,6 +209,19 @@
 <li><p><a class="reference internal" href="community/aws/lightsail_module.html#ansible-collections-community-aws-lightsail-module"><span class="std std-ref">community.aws.lightsail</span></a> – Manage instances in AWS Lightsail</p></li>
 <li><p><a class="reference internal" href="community/aws/lightsail_snapshot_module.html#ansible-collections-community-aws-lightsail-snapshot-module"><span class="std std-ref">community.aws.lightsail_snapshot</span></a> – Creates snapshots of AWS Lightsail instances</p></li>
 <li><p><a class="reference internal" href="community/aws/lightsail_static_ip_module.html#ansible-collections-community-aws-lightsail-static-ip-module"><span class="std std-ref">community.aws.lightsail_static_ip</span></a> – Manage static IP addresses in AWS Lightsail</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_channel_placement_group_module.html#ansible-collections-community-aws-medialive-channel-placement-group-module"><span class="std std-ref">community.aws.medialive_channel_placement_group</span></a> – Manage AWS MediaLive Channel Placement Groups</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_channel_placement_group_info_module.html#ansible-collections-community-aws-medialive-channel-placement-group-info-module"><span class="std std-ref">community.aws.medialive_channel_placement_group_info</span></a> – Get information about an AWS MediaLive Channel Placement Group</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_cluster_module.html#ansible-collections-community-aws-medialive-cluster-module"><span class="std std-ref">community.aws.medialive_cluster</span></a> – Manage AWS MediaLive Anywhere clusters</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_cluster_info_module.html#ansible-collections-community-aws-medialive-cluster-info-module"><span class="std std-ref">community.aws.medialive_cluster_info</span></a> – Gather MediaLive Anywhere cluster info</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_input_module.html#ansible-collections-community-aws-medialive-input-module"><span class="std std-ref">community.aws.medialive_input</span></a> – Manage AWS MediaLive Anywhere inputs</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_input_info_module.html#ansible-collections-community-aws-medialive-input-info-module"><span class="std std-ref">community.aws.medialive_input_info</span></a> – Gather MediaLive Anywhere input info</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_network_module.html#ansible-collections-community-aws-medialive-network-module"><span class="std std-ref">community.aws.medialive_network</span></a> – Manage AWS MediaLive Anywhere networks</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_network_info_module.html#ansible-collections-community-aws-medialive-network-info-module"><span class="std std-ref">community.aws.medialive_network_info</span></a> – Gather MediaLive Anywhere network info</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_node_module.html#ansible-collections-community-aws-medialive-node-module"><span class="std std-ref">community.aws.medialive_node</span></a> – Manage AWS MediaLive Anywhere nodes</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_node_info_module.html#ansible-collections-community-aws-medialive-node-info-module"><span class="std std-ref">community.aws.medialive_node_info</span></a> – Gather AWS MediaLive Anywhere node info</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_node_registration_module.html#ansible-collections-community-aws-medialive-node-registration-module"><span class="std std-ref">community.aws.medialive_node_registration</span></a> – Manage AWS MediaLive Anywhere nodes</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_sdi_source_module.html#ansible-collections-community-aws-medialive-sdi-source-module"><span class="std std-ref">community.aws.medialive_sdi_source</span></a> – Manage AWS MediaLive Anywhere SDI sources</p></li>
+<li><p><a class="reference internal" href="community/aws/medialive_sdi_source_info_module.html#ansible-collections-community-aws-medialive-sdi-source-info-module"><span class="std std-ref">community.aws.medialive_sdi_source_info</span></a> – Gather AWS MediaLive Anywhere SDI source info</p></li>
 <li><p><a class="reference internal" href="community/aws/mq_broker_module.html#ansible-collections-community-aws-mq-broker-module"><span class="std std-ref">community.aws.mq_broker</span></a> – MQ broker management</p></li>
 <li><p><a class="reference internal" href="community/aws/mq_broker_config_module.html#ansible-collections-community-aws-mq-broker-config-module"><span class="std std-ref">community.aws.mq_broker_config</span></a> – Update Amazon MQ broker configuration</p></li>
 <li><p><a class="reference internal" href="community/aws/mq_broker_info_module.html#ansible-collections-community-aws-mq-broker-info-module"><span class="std std-ref">community.aws.mq_broker_info</span></a> – Retrieve MQ Broker details</p></li>

@softwarefactory-project-zuul
Copy link
Copy Markdown
Contributor

Build failed.
https://ansible.softwarefactory-project.io/zuul/buildset/e0b7d2be18284a5aa27c5bc92c939d1c

ansible-galaxy-importer FAILURE in 4m 03s (non-voting)
✔️ build-ansible-collection SUCCESS in 11m 12s
✔️ ansible-test-splitter SUCCESS in 4m 30s
integration-community.aws-1 FAILURE in 4m 13s
integration-community.aws-2 FAILURE in 4m 02s
integration-community.aws-3 FAILURE in 3m 35s
integration-community.aws-4 FAILURE in 4m 12s
integration-community.aws-5 FAILURE in 3m 02s
integration-community.aws-6 FAILURE in 3m 02s
Skipped 16 jobs

@r363x
Copy link
Copy Markdown
Author

r363x commented Nov 14, 2025

Hi @abikouo, I saw you were active in this project recently. Could you please take a look at this and the acoompanying PRs when you have a moment? Thank you

@alinabuzachis
Copy link
Copy Markdown
Contributor

Hi @r363x, thank you for your contribution. Can you please split this PR into smaller ones so that it will be easier to review? Thank you.

@r363x
Copy link
Copy Markdown
Author

r363x commented Dec 19, 2025

Hi @alinabuzachis, the first PR for the medialive_network module is up: PR-2370

@r363x
Copy link
Copy Markdown
Author

r363x commented Dec 19, 2025

@alinabuzachis, the second PR for the medialive_sdi_source module is up: PR-2371

@r363x
Copy link
Copy Markdown
Author

r363x commented Dec 19, 2025

@alinabuzachis, the rest of the PRs are dependent on these two, so please let me know if you'd prefer me to:

  1. wait until these are merged, then submit the rest
  2. stack them up

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants