def METHOD_NAME() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(
            module=__name__,
            className='MailChimpAudienceRemover',
            inputs=["payload"],
            outputs=["response", "error"],
            version='0.6.0.1',
            license="MIT",
            author="Dawid Kruk",
            init={
                "source": {
                    "id": None,
                    "name": None
                },
                "list_id": None,
                "email": None,
                "delete": False
            },
            manual="mailchimp_remove_from_audience_action",
            form=Form(
                groups=[
                    FormGroup(
                        name="Plugin configuration",
                        fields=[
                            FormField(
                                id="source",
                                name="MailChimp resource",
                                description="Please select your MailChimp resource.",
                                component=FormComponent(type="resource", props={"label": "Resource", "tag": "mailchimp"})
                            ),
                            FormField(
                                id="list_id",
                                name="ID of your e-mail list (audience)",
                                description="Please type in your MailChimp audience ID.",
                                component=FormComponent(type="text", props={"label": "Audience ID"})
                            ),
                            FormField(
                                id="email",
                                name="Contact's e-mail address",
                                description="Please provide path to contact's e-mail address.",
                                component=FormComponent(type="dotPath", props={"label": "E-mail",
                                                                               "defaultSourceValue": "profile",
                                                                               "defaultPathValue": "pii.email"
                                                                               })
                            ),
                        ]
                    ),
                    FormGroup(
                        name="For Advanced Users Only",
                        fields=[
                            FormField(
                                id="delete",
                                name="Permanently delete contact",
                                description="Please determine if plugin should permanently delete contact, or archive "
                                            "it. Please notice that if you permanently delete your contact, then you"
                                            " cannot add it again. ON switch position indicates deleting mode.",
                                component=FormComponent(type="bool", props={"label": "Permanently delete contact"})
                            )
                        ]
                    )
                ]
            )
        ),
        metadata=MetaData(
            name='Remove from audience',
            brand="MailChimp",
            desc='Removes contact to MailChimp audience or archives it.',
            icon='mailchimp',
            group=["Mailchimp"],
            tags=['mailing'],
            documentation=Documentation(
                inputs={
                    "payload": PortDoc(desc="This port takes any JSON-like object.")
                },
                outputs={
                    "response": PortDoc(desc="This port returns response from MailChimp API."),
                    "error": PortDoc(desc="This port returns response from MailChimp API if an error occurs.")
                }
            )
        )
    )