# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from azure.identity import DefaultAzureCredential

from azure.mgmt.costmanagement import CostManagementClient

"""
# PREREQUISITES
    pip install azure-identity
    pip install azure-mgmt-costmanagement
# USAGE
    python cost_allocation_rule_create_tag.py

    Before run the sample, please set the values of the client ID, tenant ID and client secret
    of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
    AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
    https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""


def main():
    client = CostManagementClient(
        credential=DefaultAzureCredential(),
    )

    response = client.cost_allocation_rules.create_or_update(
        billing_account_id="100",
        rule_name="testRule",
        cost_allocation_rule={
            "properties": {
                "description": "This is a testRule",
                "details": {
                    "sourceResources": [{"name": "category", "resourceType": "Tag", "values": ["devops"]}],
                    "targetResources": [
                        {
                            "name": "ResourceGroupName",
                            "policyType": "FixedProportion",
                            "resourceType": "Dimension",
                            "values": [
                                {"name": "destinationRG", "percentage": 33.33},
                                {"name": "destinationRG2", "percentage": 33.33},
                                {"name": "destinationRG3", "percentage": 33.34},
                            ],
                        }
                    ],
                },
                "status": "Active",
            }
        },
    )
    print(response)


# x-ms-original-file: 2025-03-01/CostAllocationRuleCreateTag.json
if __name__ == "__main__":
    main()
