# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs

__all__ = [
    'GetSubscribedServiceResult',
    'AwaitableGetSubscribedServiceResult',
    'get_subscribed_service',
    'get_subscribed_service_output',
]

@pulumi.output_type
class GetSubscribedServiceResult:
    """
    A collection of values returned by getSubscribedService.
    """
    def __init__(__self__, admin_email=None, agreement_id=None, agreement_name=None, agreement_type=None, available_amount=None, bill_to_addresses=None, bill_to_contacts=None, bill_to_customers=None, billing_frequency=None, booking_opty_number=None, buyer_email=None, commitment_schedule_id=None, commitment_services=None, created_by=None, credit_percentage=None, csi=None, customer_transaction_reference=None, data_center=None, data_center_region=None, eligible_to_renew=None, end_user_addresses=None, end_user_contacts=None, end_user_customers=None, fields=None, fulfillment_set=None, funded_allocation_value=None, id=None, is_allowance=None, is_cap_to_price_list=None, is_credit_enabled=None, is_having_usage=None, is_intent_to_pay=None, is_payg=None, is_single_rate_card=None, is_variable_commitment=None, line_net_amount=None, major_set=None, net_unit_price=None, operation_type=None, order_header_id=None, order_line_id=None, order_line_number=None, order_number=None, order_type=None, original_promo_amount=None, overage_bill_to=None, overage_discount_percentage=None, overage_policy=None, partner_credit_amount=None, partner_transaction_type=None, payg_policy=None, payment_method=None, payment_number=None, payment_terms=None, price_period=None, pricing_model=None, products=None, program_type=None, promo_order_line_id=None, promo_type=None, promotion_pricing_type=None, provisioning_source=None, quantity=None, rate_card_discount_percentage=None, rate_cards=None, ratecard_type=None, renewal_opty_id=None, renewal_opty_number=None, renewal_opty_type=None, renewed_subscribed_service_id=None, reseller_addresses=None, reseller_contacts=None, reseller_customers=None, revenue_line_id=None, revenue_line_number=None, revised_arr_in_lc=None, revised_arr_in_sc=None, sales_account_party_id=None, sales_channel=None, serial_number=None, service_to_addresses=None, service_to_contacts=None, service_to_customers=None, sold_to_contacts=None, sold_to_customers=None, start_date_type=None, status=None, subscribed_service_id=None, subscription_id=None, subscription_source=None, system_arr_in_lc=None, system_arr_in_sc=None, system_atr_arr_in_lc=None, system_atr_arr_in_sc=None, term_value=None, term_value_uom=None, time_agreement_end=None, time_created=None, time_customer_config=None, time_end=None, time_majorset_end=None, time_majorset_start=None, time_payment_expiry=None, time_provisioned=None, time_service_configuration_email_sent=None, time_start=None, time_updated=None, time_welcome_email_sent=None, total_value=None, transaction_extension_id=None, type=None, updated_by=None, used_amount=None):
        if admin_email and not isinstance(admin_email, str):
            raise TypeError("Expected argument 'admin_email' to be a str")
        pulumi.set(__self__, "admin_email", admin_email)
        if agreement_id and not isinstance(agreement_id, str):
            raise TypeError("Expected argument 'agreement_id' to be a str")
        pulumi.set(__self__, "agreement_id", agreement_id)
        if agreement_name and not isinstance(agreement_name, str):
            raise TypeError("Expected argument 'agreement_name' to be a str")
        pulumi.set(__self__, "agreement_name", agreement_name)
        if agreement_type and not isinstance(agreement_type, str):
            raise TypeError("Expected argument 'agreement_type' to be a str")
        pulumi.set(__self__, "agreement_type", agreement_type)
        if available_amount and not isinstance(available_amount, str):
            raise TypeError("Expected argument 'available_amount' to be a str")
        pulumi.set(__self__, "available_amount", available_amount)
        if bill_to_addresses and not isinstance(bill_to_addresses, list):
            raise TypeError("Expected argument 'bill_to_addresses' to be a list")
        pulumi.set(__self__, "bill_to_addresses", bill_to_addresses)
        if bill_to_contacts and not isinstance(bill_to_contacts, list):
            raise TypeError("Expected argument 'bill_to_contacts' to be a list")
        pulumi.set(__self__, "bill_to_contacts", bill_to_contacts)
        if bill_to_customers and not isinstance(bill_to_customers, list):
            raise TypeError("Expected argument 'bill_to_customers' to be a list")
        pulumi.set(__self__, "bill_to_customers", bill_to_customers)
        if billing_frequency and not isinstance(billing_frequency, str):
            raise TypeError("Expected argument 'billing_frequency' to be a str")
        pulumi.set(__self__, "billing_frequency", billing_frequency)
        if booking_opty_number and not isinstance(booking_opty_number, str):
            raise TypeError("Expected argument 'booking_opty_number' to be a str")
        pulumi.set(__self__, "booking_opty_number", booking_opty_number)
        if buyer_email and not isinstance(buyer_email, str):
            raise TypeError("Expected argument 'buyer_email' to be a str")
        pulumi.set(__self__, "buyer_email", buyer_email)
        if commitment_schedule_id and not isinstance(commitment_schedule_id, str):
            raise TypeError("Expected argument 'commitment_schedule_id' to be a str")
        pulumi.set(__self__, "commitment_schedule_id", commitment_schedule_id)
        if commitment_services and not isinstance(commitment_services, list):
            raise TypeError("Expected argument 'commitment_services' to be a list")
        pulumi.set(__self__, "commitment_services", commitment_services)
        if created_by and not isinstance(created_by, str):
            raise TypeError("Expected argument 'created_by' to be a str")
        pulumi.set(__self__, "created_by", created_by)
        if credit_percentage and not isinstance(credit_percentage, str):
            raise TypeError("Expected argument 'credit_percentage' to be a str")
        pulumi.set(__self__, "credit_percentage", credit_percentage)
        if csi and not isinstance(csi, str):
            raise TypeError("Expected argument 'csi' to be a str")
        pulumi.set(__self__, "csi", csi)
        if customer_transaction_reference and not isinstance(customer_transaction_reference, str):
            raise TypeError("Expected argument 'customer_transaction_reference' to be a str")
        pulumi.set(__self__, "customer_transaction_reference", customer_transaction_reference)
        if data_center and not isinstance(data_center, str):
            raise TypeError("Expected argument 'data_center' to be a str")
        pulumi.set(__self__, "data_center", data_center)
        if data_center_region and not isinstance(data_center_region, str):
            raise TypeError("Expected argument 'data_center_region' to be a str")
        pulumi.set(__self__, "data_center_region", data_center_region)
        if eligible_to_renew and not isinstance(eligible_to_renew, str):
            raise TypeError("Expected argument 'eligible_to_renew' to be a str")
        pulumi.set(__self__, "eligible_to_renew", eligible_to_renew)
        if end_user_addresses and not isinstance(end_user_addresses, list):
            raise TypeError("Expected argument 'end_user_addresses' to be a list")
        pulumi.set(__self__, "end_user_addresses", end_user_addresses)
        if end_user_contacts and not isinstance(end_user_contacts, list):
            raise TypeError("Expected argument 'end_user_contacts' to be a list")
        pulumi.set(__self__, "end_user_contacts", end_user_contacts)
        if end_user_customers and not isinstance(end_user_customers, list):
            raise TypeError("Expected argument 'end_user_customers' to be a list")
        pulumi.set(__self__, "end_user_customers", end_user_customers)
        if fields and not isinstance(fields, list):
            raise TypeError("Expected argument 'fields' to be a list")
        pulumi.set(__self__, "fields", fields)
        if fulfillment_set and not isinstance(fulfillment_set, str):
            raise TypeError("Expected argument 'fulfillment_set' to be a str")
        pulumi.set(__self__, "fulfillment_set", fulfillment_set)
        if funded_allocation_value and not isinstance(funded_allocation_value, str):
            raise TypeError("Expected argument 'funded_allocation_value' to be a str")
        pulumi.set(__self__, "funded_allocation_value", funded_allocation_value)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if is_allowance and not isinstance(is_allowance, bool):
            raise TypeError("Expected argument 'is_allowance' to be a bool")
        pulumi.set(__self__, "is_allowance", is_allowance)
        if is_cap_to_price_list and not isinstance(is_cap_to_price_list, bool):
            raise TypeError("Expected argument 'is_cap_to_price_list' to be a bool")
        pulumi.set(__self__, "is_cap_to_price_list", is_cap_to_price_list)
        if is_credit_enabled and not isinstance(is_credit_enabled, bool):
            raise TypeError("Expected argument 'is_credit_enabled' to be a bool")
        pulumi.set(__self__, "is_credit_enabled", is_credit_enabled)
        if is_having_usage and not isinstance(is_having_usage, bool):
            raise TypeError("Expected argument 'is_having_usage' to be a bool")
        pulumi.set(__self__, "is_having_usage", is_having_usage)
        if is_intent_to_pay and not isinstance(is_intent_to_pay, bool):
            raise TypeError("Expected argument 'is_intent_to_pay' to be a bool")
        pulumi.set(__self__, "is_intent_to_pay", is_intent_to_pay)
        if is_payg and not isinstance(is_payg, bool):
            raise TypeError("Expected argument 'is_payg' to be a bool")
        pulumi.set(__self__, "is_payg", is_payg)
        if is_single_rate_card and not isinstance(is_single_rate_card, bool):
            raise TypeError("Expected argument 'is_single_rate_card' to be a bool")
        pulumi.set(__self__, "is_single_rate_card", is_single_rate_card)
        if is_variable_commitment and not isinstance(is_variable_commitment, bool):
            raise TypeError("Expected argument 'is_variable_commitment' to be a bool")
        pulumi.set(__self__, "is_variable_commitment", is_variable_commitment)
        if line_net_amount and not isinstance(line_net_amount, str):
            raise TypeError("Expected argument 'line_net_amount' to be a str")
        pulumi.set(__self__, "line_net_amount", line_net_amount)
        if major_set and not isinstance(major_set, str):
            raise TypeError("Expected argument 'major_set' to be a str")
        pulumi.set(__self__, "major_set", major_set)
        if net_unit_price and not isinstance(net_unit_price, str):
            raise TypeError("Expected argument 'net_unit_price' to be a str")
        pulumi.set(__self__, "net_unit_price", net_unit_price)
        if operation_type and not isinstance(operation_type, str):
            raise TypeError("Expected argument 'operation_type' to be a str")
        pulumi.set(__self__, "operation_type", operation_type)
        if order_header_id and not isinstance(order_header_id, str):
            raise TypeError("Expected argument 'order_header_id' to be a str")
        pulumi.set(__self__, "order_header_id", order_header_id)
        if order_line_id and not isinstance(order_line_id, str):
            raise TypeError("Expected argument 'order_line_id' to be a str")
        pulumi.set(__self__, "order_line_id", order_line_id)
        if order_line_number and not isinstance(order_line_number, int):
            raise TypeError("Expected argument 'order_line_number' to be a int")
        pulumi.set(__self__, "order_line_number", order_line_number)
        if order_number and not isinstance(order_number, str):
            raise TypeError("Expected argument 'order_number' to be a str")
        pulumi.set(__self__, "order_number", order_number)
        if order_type and not isinstance(order_type, str):
            raise TypeError("Expected argument 'order_type' to be a str")
        pulumi.set(__self__, "order_type", order_type)
        if original_promo_amount and not isinstance(original_promo_amount, str):
            raise TypeError("Expected argument 'original_promo_amount' to be a str")
        pulumi.set(__self__, "original_promo_amount", original_promo_amount)
        if overage_bill_to and not isinstance(overage_bill_to, str):
            raise TypeError("Expected argument 'overage_bill_to' to be a str")
        pulumi.set(__self__, "overage_bill_to", overage_bill_to)
        if overage_discount_percentage and not isinstance(overage_discount_percentage, str):
            raise TypeError("Expected argument 'overage_discount_percentage' to be a str")
        pulumi.set(__self__, "overage_discount_percentage", overage_discount_percentage)
        if overage_policy and not isinstance(overage_policy, str):
            raise TypeError("Expected argument 'overage_policy' to be a str")
        pulumi.set(__self__, "overage_policy", overage_policy)
        if partner_credit_amount and not isinstance(partner_credit_amount, str):
            raise TypeError("Expected argument 'partner_credit_amount' to be a str")
        pulumi.set(__self__, "partner_credit_amount", partner_credit_amount)
        if partner_transaction_type and not isinstance(partner_transaction_type, str):
            raise TypeError("Expected argument 'partner_transaction_type' to be a str")
        pulumi.set(__self__, "partner_transaction_type", partner_transaction_type)
        if payg_policy and not isinstance(payg_policy, str):
            raise TypeError("Expected argument 'payg_policy' to be a str")
        pulumi.set(__self__, "payg_policy", payg_policy)
        if payment_method and not isinstance(payment_method, str):
            raise TypeError("Expected argument 'payment_method' to be a str")
        pulumi.set(__self__, "payment_method", payment_method)
        if payment_number and not isinstance(payment_number, str):
            raise TypeError("Expected argument 'payment_number' to be a str")
        pulumi.set(__self__, "payment_number", payment_number)
        if payment_terms and not isinstance(payment_terms, list):
            raise TypeError("Expected argument 'payment_terms' to be a list")
        pulumi.set(__self__, "payment_terms", payment_terms)
        if price_period and not isinstance(price_period, str):
            raise TypeError("Expected argument 'price_period' to be a str")
        pulumi.set(__self__, "price_period", price_period)
        if pricing_model and not isinstance(pricing_model, str):
            raise TypeError("Expected argument 'pricing_model' to be a str")
        pulumi.set(__self__, "pricing_model", pricing_model)
        if products and not isinstance(products, list):
            raise TypeError("Expected argument 'products' to be a list")
        pulumi.set(__self__, "products", products)
        if program_type and not isinstance(program_type, str):
            raise TypeError("Expected argument 'program_type' to be a str")
        pulumi.set(__self__, "program_type", program_type)
        if promo_order_line_id and not isinstance(promo_order_line_id, str):
            raise TypeError("Expected argument 'promo_order_line_id' to be a str")
        pulumi.set(__self__, "promo_order_line_id", promo_order_line_id)
        if promo_type and not isinstance(promo_type, str):
            raise TypeError("Expected argument 'promo_type' to be a str")
        pulumi.set(__self__, "promo_type", promo_type)
        if promotion_pricing_type and not isinstance(promotion_pricing_type, str):
            raise TypeError("Expected argument 'promotion_pricing_type' to be a str")
        pulumi.set(__self__, "promotion_pricing_type", promotion_pricing_type)
        if provisioning_source and not isinstance(provisioning_source, str):
            raise TypeError("Expected argument 'provisioning_source' to be a str")
        pulumi.set(__self__, "provisioning_source", provisioning_source)
        if quantity and not isinstance(quantity, str):
            raise TypeError("Expected argument 'quantity' to be a str")
        pulumi.set(__self__, "quantity", quantity)
        if rate_card_discount_percentage and not isinstance(rate_card_discount_percentage, str):
            raise TypeError("Expected argument 'rate_card_discount_percentage' to be a str")
        pulumi.set(__self__, "rate_card_discount_percentage", rate_card_discount_percentage)
        if rate_cards and not isinstance(rate_cards, list):
            raise TypeError("Expected argument 'rate_cards' to be a list")
        pulumi.set(__self__, "rate_cards", rate_cards)
        if ratecard_type and not isinstance(ratecard_type, str):
            raise TypeError("Expected argument 'ratecard_type' to be a str")
        pulumi.set(__self__, "ratecard_type", ratecard_type)
        if renewal_opty_id and not isinstance(renewal_opty_id, str):
            raise TypeError("Expected argument 'renewal_opty_id' to be a str")
        pulumi.set(__self__, "renewal_opty_id", renewal_opty_id)
        if renewal_opty_number and not isinstance(renewal_opty_number, str):
            raise TypeError("Expected argument 'renewal_opty_number' to be a str")
        pulumi.set(__self__, "renewal_opty_number", renewal_opty_number)
        if renewal_opty_type and not isinstance(renewal_opty_type, str):
            raise TypeError("Expected argument 'renewal_opty_type' to be a str")
        pulumi.set(__self__, "renewal_opty_type", renewal_opty_type)
        if renewed_subscribed_service_id and not isinstance(renewed_subscribed_service_id, str):
            raise TypeError("Expected argument 'renewed_subscribed_service_id' to be a str")
        pulumi.set(__self__, "renewed_subscribed_service_id", renewed_subscribed_service_id)
        if reseller_addresses and not isinstance(reseller_addresses, list):
            raise TypeError("Expected argument 'reseller_addresses' to be a list")
        pulumi.set(__self__, "reseller_addresses", reseller_addresses)
        if reseller_contacts and not isinstance(reseller_contacts, list):
            raise TypeError("Expected argument 'reseller_contacts' to be a list")
        pulumi.set(__self__, "reseller_contacts", reseller_contacts)
        if reseller_customers and not isinstance(reseller_customers, list):
            raise TypeError("Expected argument 'reseller_customers' to be a list")
        pulumi.set(__self__, "reseller_customers", reseller_customers)
        if revenue_line_id and not isinstance(revenue_line_id, str):
            raise TypeError("Expected argument 'revenue_line_id' to be a str")
        pulumi.set(__self__, "revenue_line_id", revenue_line_id)
        if revenue_line_number and not isinstance(revenue_line_number, str):
            raise TypeError("Expected argument 'revenue_line_number' to be a str")
        pulumi.set(__self__, "revenue_line_number", revenue_line_number)
        if revised_arr_in_lc and not isinstance(revised_arr_in_lc, str):
            raise TypeError("Expected argument 'revised_arr_in_lc' to be a str")
        pulumi.set(__self__, "revised_arr_in_lc", revised_arr_in_lc)
        if revised_arr_in_sc and not isinstance(revised_arr_in_sc, str):
            raise TypeError("Expected argument 'revised_arr_in_sc' to be a str")
        pulumi.set(__self__, "revised_arr_in_sc", revised_arr_in_sc)
        if sales_account_party_id and not isinstance(sales_account_party_id, str):
            raise TypeError("Expected argument 'sales_account_party_id' to be a str")
        pulumi.set(__self__, "sales_account_party_id", sales_account_party_id)
        if sales_channel and not isinstance(sales_channel, str):
            raise TypeError("Expected argument 'sales_channel' to be a str")
        pulumi.set(__self__, "sales_channel", sales_channel)
        if serial_number and not isinstance(serial_number, str):
            raise TypeError("Expected argument 'serial_number' to be a str")
        pulumi.set(__self__, "serial_number", serial_number)
        if service_to_addresses and not isinstance(service_to_addresses, list):
            raise TypeError("Expected argument 'service_to_addresses' to be a list")
        pulumi.set(__self__, "service_to_addresses", service_to_addresses)
        if service_to_contacts and not isinstance(service_to_contacts, list):
            raise TypeError("Expected argument 'service_to_contacts' to be a list")
        pulumi.set(__self__, "service_to_contacts", service_to_contacts)
        if service_to_customers and not isinstance(service_to_customers, list):
            raise TypeError("Expected argument 'service_to_customers' to be a list")
        pulumi.set(__self__, "service_to_customers", service_to_customers)
        if sold_to_contacts and not isinstance(sold_to_contacts, list):
            raise TypeError("Expected argument 'sold_to_contacts' to be a list")
        pulumi.set(__self__, "sold_to_contacts", sold_to_contacts)
        if sold_to_customers and not isinstance(sold_to_customers, list):
            raise TypeError("Expected argument 'sold_to_customers' to be a list")
        pulumi.set(__self__, "sold_to_customers", sold_to_customers)
        if start_date_type and not isinstance(start_date_type, str):
            raise TypeError("Expected argument 'start_date_type' to be a str")
        pulumi.set(__self__, "start_date_type", start_date_type)
        if status and not isinstance(status, str):
            raise TypeError("Expected argument 'status' to be a str")
        pulumi.set(__self__, "status", status)
        if subscribed_service_id and not isinstance(subscribed_service_id, str):
            raise TypeError("Expected argument 'subscribed_service_id' to be a str")
        pulumi.set(__self__, "subscribed_service_id", subscribed_service_id)
        if subscription_id and not isinstance(subscription_id, str):
            raise TypeError("Expected argument 'subscription_id' to be a str")
        pulumi.set(__self__, "subscription_id", subscription_id)
        if subscription_source and not isinstance(subscription_source, str):
            raise TypeError("Expected argument 'subscription_source' to be a str")
        pulumi.set(__self__, "subscription_source", subscription_source)
        if system_arr_in_lc and not isinstance(system_arr_in_lc, str):
            raise TypeError("Expected argument 'system_arr_in_lc' to be a str")
        pulumi.set(__self__, "system_arr_in_lc", system_arr_in_lc)
        if system_arr_in_sc and not isinstance(system_arr_in_sc, str):
            raise TypeError("Expected argument 'system_arr_in_sc' to be a str")
        pulumi.set(__self__, "system_arr_in_sc", system_arr_in_sc)
        if system_atr_arr_in_lc and not isinstance(system_atr_arr_in_lc, str):
            raise TypeError("Expected argument 'system_atr_arr_in_lc' to be a str")
        pulumi.set(__self__, "system_atr_arr_in_lc", system_atr_arr_in_lc)
        if system_atr_arr_in_sc and not isinstance(system_atr_arr_in_sc, str):
            raise TypeError("Expected argument 'system_atr_arr_in_sc' to be a str")
        pulumi.set(__self__, "system_atr_arr_in_sc", system_atr_arr_in_sc)
        if term_value and not isinstance(term_value, str):
            raise TypeError("Expected argument 'term_value' to be a str")
        pulumi.set(__self__, "term_value", term_value)
        if term_value_uom and not isinstance(term_value_uom, str):
            raise TypeError("Expected argument 'term_value_uom' to be a str")
        pulumi.set(__self__, "term_value_uom", term_value_uom)
        if time_agreement_end and not isinstance(time_agreement_end, str):
            raise TypeError("Expected argument 'time_agreement_end' to be a str")
        pulumi.set(__self__, "time_agreement_end", time_agreement_end)
        if time_created and not isinstance(time_created, str):
            raise TypeError("Expected argument 'time_created' to be a str")
        pulumi.set(__self__, "time_created", time_created)
        if time_customer_config and not isinstance(time_customer_config, str):
            raise TypeError("Expected argument 'time_customer_config' to be a str")
        pulumi.set(__self__, "time_customer_config", time_customer_config)
        if time_end and not isinstance(time_end, str):
            raise TypeError("Expected argument 'time_end' to be a str")
        pulumi.set(__self__, "time_end", time_end)
        if time_majorset_end and not isinstance(time_majorset_end, str):
            raise TypeError("Expected argument 'time_majorset_end' to be a str")
        pulumi.set(__self__, "time_majorset_end", time_majorset_end)
        if time_majorset_start and not isinstance(time_majorset_start, str):
            raise TypeError("Expected argument 'time_majorset_start' to be a str")
        pulumi.set(__self__, "time_majorset_start", time_majorset_start)
        if time_payment_expiry and not isinstance(time_payment_expiry, str):
            raise TypeError("Expected argument 'time_payment_expiry' to be a str")
        pulumi.set(__self__, "time_payment_expiry", time_payment_expiry)
        if time_provisioned and not isinstance(time_provisioned, str):
            raise TypeError("Expected argument 'time_provisioned' to be a str")
        pulumi.set(__self__, "time_provisioned", time_provisioned)
        if time_service_configuration_email_sent and not isinstance(time_service_configuration_email_sent, str):
            raise TypeError("Expected argument 'time_service_configuration_email_sent' to be a str")
        pulumi.set(__self__, "time_service_configuration_email_sent", time_service_configuration_email_sent)
        if time_start and not isinstance(time_start, str):
            raise TypeError("Expected argument 'time_start' to be a str")
        pulumi.set(__self__, "time_start", time_start)
        if time_updated and not isinstance(time_updated, str):
            raise TypeError("Expected argument 'time_updated' to be a str")
        pulumi.set(__self__, "time_updated", time_updated)
        if time_welcome_email_sent and not isinstance(time_welcome_email_sent, str):
            raise TypeError("Expected argument 'time_welcome_email_sent' to be a str")
        pulumi.set(__self__, "time_welcome_email_sent", time_welcome_email_sent)
        if total_value and not isinstance(total_value, str):
            raise TypeError("Expected argument 'total_value' to be a str")
        pulumi.set(__self__, "total_value", total_value)
        if transaction_extension_id and not isinstance(transaction_extension_id, str):
            raise TypeError("Expected argument 'transaction_extension_id' to be a str")
        pulumi.set(__self__, "transaction_extension_id", transaction_extension_id)
        if type and not isinstance(type, str):
            raise TypeError("Expected argument 'type' to be a str")
        pulumi.set(__self__, "type", type)
        if updated_by and not isinstance(updated_by, str):
            raise TypeError("Expected argument 'updated_by' to be a str")
        pulumi.set(__self__, "updated_by", updated_by)
        if used_amount and not isinstance(used_amount, str):
            raise TypeError("Expected argument 'used_amount' to be a str")
        pulumi.set(__self__, "used_amount", used_amount)

    @property
    @pulumi.getter(name="adminEmail")
    def admin_email(self) -> str:
        """
        Subscribed service admin email id
        """
        return pulumi.get(self, "admin_email")

    @property
    @pulumi.getter(name="agreementId")
    def agreement_id(self) -> str:
        """
        Subscribed service agreement ID
        """
        return pulumi.get(self, "agreement_id")

    @property
    @pulumi.getter(name="agreementName")
    def agreement_name(self) -> str:
        """
        Subscribed service agrrement name
        """
        return pulumi.get(self, "agreement_name")

    @property
    @pulumi.getter(name="agreementType")
    def agreement_type(self) -> str:
        """
        Subscribed service agrrement type
        """
        return pulumi.get(self, "agreement_type")

    @property
    @pulumi.getter(name="availableAmount")
    def available_amount(self) -> str:
        """
        Commitment available amount
        """
        return pulumi.get(self, "available_amount")

    @property
    @pulumi.getter(name="billToAddresses")
    def bill_to_addresses(self) -> Sequence['outputs.GetSubscribedServiceBillToAddressResult']:
        """
        Address.
        """
        return pulumi.get(self, "bill_to_addresses")

    @property
    @pulumi.getter(name="billToContacts")
    def bill_to_contacts(self) -> Sequence['outputs.GetSubscribedServiceBillToContactResult']:
        """
        User.
        """
        return pulumi.get(self, "bill_to_contacts")

    @property
    @pulumi.getter(name="billToCustomers")
    def bill_to_customers(self) -> Sequence['outputs.GetSubscribedServiceBillToCustomerResult']:
        """
        Business partner.
        """
        return pulumi.get(self, "bill_to_customers")

    @property
    @pulumi.getter(name="billingFrequency")
    def billing_frequency(self) -> str:
        """
        Subscribed service invoice frequency
        """
        return pulumi.get(self, "billing_frequency")

    @property
    @pulumi.getter(name="bookingOptyNumber")
    def booking_opty_number(self) -> str:
        """
        Booking Opportunity Number of Subscribed Service
        """
        return pulumi.get(self, "booking_opty_number")

    @property
    @pulumi.getter(name="buyerEmail")
    def buyer_email(self) -> str:
        """
        Subscribed service buyer email id
        """
        return pulumi.get(self, "buyer_email")

    @property
    @pulumi.getter(name="commitmentScheduleId")
    def commitment_schedule_id(self) -> str:
        """
        Subscribed service commitment schedule Id
        """
        return pulumi.get(self, "commitment_schedule_id")

    @property
    @pulumi.getter(name="commitmentServices")
    def commitment_services(self) -> Sequence['outputs.GetSubscribedServiceCommitmentServiceResult']:
        """
        List of Commitment services of a line
        """
        return pulumi.get(self, "commitment_services")

    @property
    @pulumi.getter(name="createdBy")
    def created_by(self) -> str:
        """
        User that created the Payment term
        """
        return pulumi.get(self, "created_by")

    @property
    @pulumi.getter(name="creditPercentage")
    def credit_percentage(self) -> str:
        """
        Subscribed service credit percentage
        """
        return pulumi.get(self, "credit_percentage")

    @property
    @pulumi.getter
    def csi(self) -> str:
        """
        Subscribed service CSI number
        """
        return pulumi.get(self, "csi")

    @property
    @pulumi.getter(name="customerTransactionReference")
    def customer_transaction_reference(self) -> str:
        """
        Identifier for a customer's transactions for purchase of ay oracle services
        """
        return pulumi.get(self, "customer_transaction_reference")

    @property
    @pulumi.getter(name="dataCenter")
    def data_center(self) -> str:
        """
        Subscribed service data center
        """
        return pulumi.get(self, "data_center")

    @property
    @pulumi.getter(name="dataCenterRegion")
    def data_center_region(self) -> str:
        """
        Subscribed service data center region
        """
        return pulumi.get(self, "data_center_region")

    @property
    @pulumi.getter(name="eligibleToRenew")
    def eligible_to_renew(self) -> str:
        """
        Subscribed service eligible to renew field
        """
        return pulumi.get(self, "eligible_to_renew")

    @property
    @pulumi.getter(name="endUserAddresses")
    def end_user_addresses(self) -> Sequence['outputs.GetSubscribedServiceEndUserAddressResult']:
        """
        Address.
        """
        return pulumi.get(self, "end_user_addresses")

    @property
    @pulumi.getter(name="endUserContacts")
    def end_user_contacts(self) -> Sequence['outputs.GetSubscribedServiceEndUserContactResult']:
        """
        User.
        """
        return pulumi.get(self, "end_user_contacts")

    @property
    @pulumi.getter(name="endUserCustomers")
    def end_user_customers(self) -> Sequence['outputs.GetSubscribedServiceEndUserCustomerResult']:
        """
        Business partner.
        """
        return pulumi.get(self, "end_user_customers")

    @property
    @pulumi.getter
    def fields(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "fields")

    @property
    @pulumi.getter(name="fulfillmentSet")
    def fulfillment_set(self) -> str:
        """
        Subscribed service fulfillment set
        """
        return pulumi.get(self, "fulfillment_set")

    @property
    @pulumi.getter(name="fundedAllocationValue")
    def funded_allocation_value(self) -> str:
        """
        Funded Allocation line value example: 12000.00
        """
        return pulumi.get(self, "funded_allocation_value")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The provider-assigned unique ID for this managed resource.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="isAllowance")
    def is_allowance(self) -> bool:
        """
        Indicates if a service can recieve usages and consequently have available amounts computed
        """
        return pulumi.get(self, "is_allowance")

    @property
    @pulumi.getter(name="isCapToPriceList")
    def is_cap_to_price_list(self) -> bool:
        """
        If true compares rate between ratecard and the active pricelist and minimum rate would be fetched
        """
        return pulumi.get(self, "is_cap_to_price_list")

    @property
    @pulumi.getter(name="isCreditEnabled")
    def is_credit_enabled(self) -> bool:
        """
        Used in context of service credit lines
        """
        return pulumi.get(self, "is_credit_enabled")

    @property
    @pulumi.getter(name="isHavingUsage")
    def is_having_usage(self) -> bool:
        """
        Indicator on whether or not there has been usage for the subscribed service
        """
        return pulumi.get(self, "is_having_usage")

    @property
    @pulumi.getter(name="isIntentToPay")
    def is_intent_to_pay(self) -> bool:
        """
        Subscribed service intent to pay flag
        """
        return pulumi.get(self, "is_intent_to_pay")

    @property
    @pulumi.getter(name="isPayg")
    def is_payg(self) -> bool:
        """
        Subscribed service payg flag
        """
        return pulumi.get(self, "is_payg")

    @property
    @pulumi.getter(name="isSingleRateCard")
    def is_single_rate_card(self) -> bool:
        """
        Indicates if the Subscribed service has a single ratecard
        """
        return pulumi.get(self, "is_single_rate_card")

    @property
    @pulumi.getter(name="isVariableCommitment")
    def is_variable_commitment(self) -> bool:
        """
        Indicates if the commitment lines can have different quantities
        """
        return pulumi.get(self, "is_variable_commitment")

    @property
    @pulumi.getter(name="lineNetAmount")
    def line_net_amount(self) -> str:
        """
        Subscribed service line net amount
        """
        return pulumi.get(self, "line_net_amount")

    @property
    @pulumi.getter(name="majorSet")
    def major_set(self) -> str:
        """
        Subscribed service Major Set
        """
        return pulumi.get(self, "major_set")

    @property
    @pulumi.getter(name="netUnitPrice")
    def net_unit_price(self) -> str:
        """
        Rate card tier net unit price
        """
        return pulumi.get(self, "net_unit_price")

    @property
    @pulumi.getter(name="operationType")
    def operation_type(self) -> str:
        """
        Subscribed service operation type
        """
        return pulumi.get(self, "operation_type")

    @property
    @pulumi.getter(name="orderHeaderId")
    def order_header_id(self) -> str:
        """
        Sales Order Header associated to the subscribed service
        """
        return pulumi.get(self, "order_header_id")

    @property
    @pulumi.getter(name="orderLineId")
    def order_line_id(self) -> str:
        """
        Sales Order Line Id associated to the subscribed service
        """
        return pulumi.get(self, "order_line_id")

    @property
    @pulumi.getter(name="orderLineNumber")
    def order_line_number(self) -> int:
        """
        Sales Order Line Number associated to the subscribed service
        """
        return pulumi.get(self, "order_line_number")

    @property
    @pulumi.getter(name="orderNumber")
    def order_number(self) -> str:
        """
        Sales Order Number associated to the subscribed service
        """
        return pulumi.get(self, "order_number")

    @property
    @pulumi.getter(name="orderType")
    def order_type(self) -> str:
        """
        Order Type of Subscribed Service
        """
        return pulumi.get(self, "order_type")

    @property
    @pulumi.getter(name="originalPromoAmount")
    def original_promo_amount(self) -> str:
        """
        Subscribed service Promotion Amount
        """
        return pulumi.get(self, "original_promo_amount")

    @property
    @pulumi.getter(name="overageBillTo")
    def overage_bill_to(self) -> str:
        """
        Overage Bill To of Subscribed Service
        """
        return pulumi.get(self, "overage_bill_to")

    @property
    @pulumi.getter(name="overageDiscountPercentage")
    def overage_discount_percentage(self) -> str:
        """
        Subscribed service Overage Discount Percentage
        """
        return pulumi.get(self, "overage_discount_percentage")

    @property
    @pulumi.getter(name="overagePolicy")
    def overage_policy(self) -> str:
        """
        Overage Policy of Subscribed Service
        """
        return pulumi.get(self, "overage_policy")

    @property
    @pulumi.getter(name="partnerCreditAmount")
    def partner_credit_amount(self) -> str:
        """
        Subscribed service partner credit amount
        """
        return pulumi.get(self, "partner_credit_amount")

    @property
    @pulumi.getter(name="partnerTransactionType")
    def partner_transaction_type(self) -> str:
        """
        This field contains the name of the partner to which the subscription belongs - depending on which the invoicing may differ
        """
        return pulumi.get(self, "partner_transaction_type")

    @property
    @pulumi.getter(name="paygPolicy")
    def payg_policy(self) -> str:
        """
        Pay As You Go policy of Subscribed Service (Can be null - indicating no payg policy)
        """
        return pulumi.get(self, "payg_policy")

    @property
    @pulumi.getter(name="paymentMethod")
    def payment_method(self) -> str:
        """
        Payment Method of Subscribed Service
        """
        return pulumi.get(self, "payment_method")

    @property
    @pulumi.getter(name="paymentNumber")
    def payment_number(self) -> str:
        """
        Payment Number of Subscribed Service
        """
        return pulumi.get(self, "payment_number")

    @property
    @pulumi.getter(name="paymentTerms")
    def payment_terms(self) -> Sequence['outputs.GetSubscribedServicePaymentTermResult']:
        """
        Payment Term details
        """
        return pulumi.get(self, "payment_terms")

    @property
    @pulumi.getter(name="pricePeriod")
    def price_period(self) -> str:
        """
        Indicates the period for which the commitment amount can be utilised exceeding which the amount lapses. Also used in calculation of total contract line value
        """
        return pulumi.get(self, "price_period")

    @property
    @pulumi.getter(name="pricingModel")
    def pricing_model(self) -> str:
        """
        Subscribed service pricing model
        """
        return pulumi.get(self, "pricing_model")

    @property
    @pulumi.getter
    def products(self) -> Sequence['outputs.GetSubscribedServiceProductResult']:
        """
        Product description
        """
        return pulumi.get(self, "products")

    @property
    @pulumi.getter(name="programType")
    def program_type(self) -> str:
        """
        Subscribed service program type
        """
        return pulumi.get(self, "program_type")

    @property
    @pulumi.getter(name="promoOrderLineId")
    def promo_order_line_id(self) -> str:
        """
        Not null if this service has an associated promotion line in SPM. Contains the line identifier from Order Management of  the associated promo line.
        """
        return pulumi.get(self, "promo_order_line_id")

    @property
    @pulumi.getter(name="promoType")
    def promo_type(self) -> str:
        """
        Subscribed service promotion type
        """
        return pulumi.get(self, "promo_type")

    @property
    @pulumi.getter(name="promotionPricingType")
    def promotion_pricing_type(self) -> str:
        """
        Promotion Pricing Type of Subscribed Service (Can be null - indicating no promotion pricing)
        """
        return pulumi.get(self, "promotion_pricing_type")

    @property
    @pulumi.getter(name="provisioningSource")
    def provisioning_source(self) -> str:
        """
        Subscribed service provisioning source
        """
        return pulumi.get(self, "provisioning_source")

    @property
    @pulumi.getter
    def quantity(self) -> str:
        """
        Subscribed service quantity
        """
        return pulumi.get(self, "quantity")

    @property
    @pulumi.getter(name="rateCardDiscountPercentage")
    def rate_card_discount_percentage(self) -> str:
        """
        Subscribed service Rate Card Discount Percentage
        """
        return pulumi.get(self, "rate_card_discount_percentage")

    @property
    @pulumi.getter(name="rateCards")
    def rate_cards(self) -> Sequence['outputs.GetSubscribedServiceRateCardResult']:
        """
        List of Rate Cards of a Subscribed Service
        """
        return pulumi.get(self, "rate_cards")

    @property
    @pulumi.getter(name="ratecardType")
    def ratecard_type(self) -> str:
        """
        SPM Ratecard Type
        """
        return pulumi.get(self, "ratecard_type")

    @property
    @pulumi.getter(name="renewalOptyId")
    def renewal_opty_id(self) -> str:
        """
        Subscribed service Opportunity Id
        """
        return pulumi.get(self, "renewal_opty_id")

    @property
    @pulumi.getter(name="renewalOptyNumber")
    def renewal_opty_number(self) -> str:
        """
        Renewal Opportunity Number of Subscribed Service
        """
        return pulumi.get(self, "renewal_opty_number")

    @property
    @pulumi.getter(name="renewalOptyType")
    def renewal_opty_type(self) -> str:
        """
        Renewal Opportunity Type of Subscribed Service
        """
        return pulumi.get(self, "renewal_opty_type")

    @property
    @pulumi.getter(name="renewedSubscribedServiceId")
    def renewed_subscribed_service_id(self) -> str:
        """
        SPM renewed Subscription ID
        """
        return pulumi.get(self, "renewed_subscribed_service_id")

    @property
    @pulumi.getter(name="resellerAddresses")
    def reseller_addresses(self) -> Sequence['outputs.GetSubscribedServiceResellerAddressResult']:
        """
        Address.
        """
        return pulumi.get(self, "reseller_addresses")

    @property
    @pulumi.getter(name="resellerContacts")
    def reseller_contacts(self) -> Sequence['outputs.GetSubscribedServiceResellerContactResult']:
        """
        User.
        """
        return pulumi.get(self, "reseller_contacts")

    @property
    @pulumi.getter(name="resellerCustomers")
    def reseller_customers(self) -> Sequence['outputs.GetSubscribedServiceResellerCustomerResult']:
        """
        Business partner.
        """
        return pulumi.get(self, "reseller_customers")

    @property
    @pulumi.getter(name="revenueLineId")
    def revenue_line_id(self) -> str:
        """
        Subscribed service Revenue Line Id
        """
        return pulumi.get(self, "revenue_line_id")

    @property
    @pulumi.getter(name="revenueLineNumber")
    def revenue_line_number(self) -> str:
        """
        Revenue Line NUmber of Subscribed Service
        """
        return pulumi.get(self, "revenue_line_number")

    @property
    @pulumi.getter(name="revisedArrInLc")
    def revised_arr_in_lc(self) -> str:
        """
        Subscribed service Revised ARR
        """
        return pulumi.get(self, "revised_arr_in_lc")

    @property
    @pulumi.getter(name="revisedArrInSc")
    def revised_arr_in_sc(self) -> str:
        """
        Subscribed service Revised ARR in Standard Currency
        """
        return pulumi.get(self, "revised_arr_in_sc")

    @property
    @pulumi.getter(name="salesAccountPartyId")
    def sales_account_party_id(self) -> str:
        """
        Subscribed service sales account party id
        """
        return pulumi.get(self, "sales_account_party_id")

    @property
    @pulumi.getter(name="salesChannel")
    def sales_channel(self) -> str:
        """
        Sales Channel of Subscribed Service
        """
        return pulumi.get(self, "sales_channel")

    @property
    @pulumi.getter(name="serialNumber")
    def serial_number(self) -> str:
        """
        Subscribed service line number
        """
        return pulumi.get(self, "serial_number")

    @property
    @pulumi.getter(name="serviceToAddresses")
    def service_to_addresses(self) -> Sequence['outputs.GetSubscribedServiceServiceToAddressResult']:
        """
        Address.
        """
        return pulumi.get(self, "service_to_addresses")

    @property
    @pulumi.getter(name="serviceToContacts")
    def service_to_contacts(self) -> Sequence['outputs.GetSubscribedServiceServiceToContactResult']:
        """
        User.
        """
        return pulumi.get(self, "service_to_contacts")

    @property
    @pulumi.getter(name="serviceToCustomers")
    def service_to_customers(self) -> Sequence['outputs.GetSubscribedServiceServiceToCustomerResult']:
        """
        Business partner.
        """
        return pulumi.get(self, "service_to_customers")

    @property
    @pulumi.getter(name="soldToContacts")
    def sold_to_contacts(self) -> Sequence['outputs.GetSubscribedServiceSoldToContactResult']:
        """
        User.
        """
        return pulumi.get(self, "sold_to_contacts")

    @property
    @pulumi.getter(name="soldToCustomers")
    def sold_to_customers(self) -> Sequence['outputs.GetSubscribedServiceSoldToCustomerResult']:
        """
        Business partner.
        """
        return pulumi.get(self, "sold_to_customers")

    @property
    @pulumi.getter(name="startDateType")
    def start_date_type(self) -> str:
        """
        Subscribed service start date type
        """
        return pulumi.get(self, "start_date_type")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        Subscribed service status
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="subscribedServiceId")
    def subscribed_service_id(self) -> str:
        """
        SPM internal Subscribed Service ID
        """
        return pulumi.get(self, "subscribed_service_id")

    @property
    @pulumi.getter(name="subscriptionId")
    def subscription_id(self) -> str:
        """
        Subscription ID associated to the subscribed service
        """
        return pulumi.get(self, "subscription_id")

    @property
    @pulumi.getter(name="subscriptionSource")
    def subscription_source(self) -> str:
        """
        Subscribed service source
        """
        return pulumi.get(self, "subscription_source")

    @property
    @pulumi.getter(name="systemArrInLc")
    def system_arr_in_lc(self) -> str:
        """
        Subscribed service System ARR
        """
        return pulumi.get(self, "system_arr_in_lc")

    @property
    @pulumi.getter(name="systemArrInSc")
    def system_arr_in_sc(self) -> str:
        """
        Subscribed service System ARR in Standard Currency
        """
        return pulumi.get(self, "system_arr_in_sc")

    @property
    @pulumi.getter(name="systemAtrArrInLc")
    def system_atr_arr_in_lc(self) -> str:
        """
        Subscribed service System ATR-ARR
        """
        return pulumi.get(self, "system_atr_arr_in_lc")

    @property
    @pulumi.getter(name="systemAtrArrInSc")
    def system_atr_arr_in_sc(self) -> str:
        """
        Subscribed service System ATR-ARR in Standard Currency
        """
        return pulumi.get(self, "system_atr_arr_in_sc")

    @property
    @pulumi.getter(name="termValue")
    def term_value(self) -> str:
        """
        Term value in Months
        """
        return pulumi.get(self, "term_value")

    @property
    @pulumi.getter(name="termValueUom")
    def term_value_uom(self) -> str:
        """
        Term value UOM
        """
        return pulumi.get(self, "term_value_uom")

    @property
    @pulumi.getter(name="timeAgreementEnd")
    def time_agreement_end(self) -> str:
        """
        Subscribed service agrrement end date
        """
        return pulumi.get(self, "time_agreement_end")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        Subscribed service creation date
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeCustomerConfig")
    def time_customer_config(self) -> str:
        """
        Subscribed service customer config date
        """
        return pulumi.get(self, "time_customer_config")

    @property
    @pulumi.getter(name="timeEnd")
    def time_end(self) -> str:
        """
        Subscribed service end date
        """
        return pulumi.get(self, "time_end")

    @property
    @pulumi.getter(name="timeMajorsetEnd")
    def time_majorset_end(self) -> str:
        """
        Subscribed service Major Set End date
        """
        return pulumi.get(self, "time_majorset_end")

    @property
    @pulumi.getter(name="timeMajorsetStart")
    def time_majorset_start(self) -> str:
        """
        Subscribed service Major Set Start date
        """
        return pulumi.get(self, "time_majorset_start")

    @property
    @pulumi.getter(name="timePaymentExpiry")
    def time_payment_expiry(self) -> str:
        """
        Subscribed service payment expiry date
        """
        return pulumi.get(self, "time_payment_expiry")

    @property
    @pulumi.getter(name="timeProvisioned")
    def time_provisioned(self) -> str:
        """
        Subscribed service provisioning date
        """
        return pulumi.get(self, "time_provisioned")

    @property
    @pulumi.getter(name="timeServiceConfigurationEmailSent")
    def time_service_configuration_email_sent(self) -> str:
        """
        Subscribed service service configuration email sent date
        """
        return pulumi.get(self, "time_service_configuration_email_sent")

    @property
    @pulumi.getter(name="timeStart")
    def time_start(self) -> str:
        """
        Subscribed service start date
        """
        return pulumi.get(self, "time_start")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        Subscribed service last update date
        """
        return pulumi.get(self, "time_updated")

    @property
    @pulumi.getter(name="timeWelcomeEmailSent")
    def time_welcome_email_sent(self) -> str:
        """
        Subscribed service welcome email sent date
        """
        return pulumi.get(self, "time_welcome_email_sent")

    @property
    @pulumi.getter(name="totalValue")
    def total_value(self) -> str:
        """
        Subscribed service total value
        """
        return pulumi.get(self, "total_value")

    @property
    @pulumi.getter(name="transactionExtensionId")
    def transaction_extension_id(self) -> str:
        """
        Subscribed service Transaction Extension Id
        """
        return pulumi.get(self, "transaction_extension_id")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Subscribed Service line type
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="updatedBy")
    def updated_by(self) -> str:
        """
        User that updated the subscribed service
        """
        return pulumi.get(self, "updated_by")

    @property
    @pulumi.getter(name="usedAmount")
    def used_amount(self) -> str:
        """
        Subscribed service used amount
        """
        return pulumi.get(self, "used_amount")


class AwaitableGetSubscribedServiceResult(GetSubscribedServiceResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetSubscribedServiceResult(
            admin_email=self.admin_email,
            agreement_id=self.agreement_id,
            agreement_name=self.agreement_name,
            agreement_type=self.agreement_type,
            available_amount=self.available_amount,
            bill_to_addresses=self.bill_to_addresses,
            bill_to_contacts=self.bill_to_contacts,
            bill_to_customers=self.bill_to_customers,
            billing_frequency=self.billing_frequency,
            booking_opty_number=self.booking_opty_number,
            buyer_email=self.buyer_email,
            commitment_schedule_id=self.commitment_schedule_id,
            commitment_services=self.commitment_services,
            created_by=self.created_by,
            credit_percentage=self.credit_percentage,
            csi=self.csi,
            customer_transaction_reference=self.customer_transaction_reference,
            data_center=self.data_center,
            data_center_region=self.data_center_region,
            eligible_to_renew=self.eligible_to_renew,
            end_user_addresses=self.end_user_addresses,
            end_user_contacts=self.end_user_contacts,
            end_user_customers=self.end_user_customers,
            fields=self.fields,
            fulfillment_set=self.fulfillment_set,
            funded_allocation_value=self.funded_allocation_value,
            id=self.id,
            is_allowance=self.is_allowance,
            is_cap_to_price_list=self.is_cap_to_price_list,
            is_credit_enabled=self.is_credit_enabled,
            is_having_usage=self.is_having_usage,
            is_intent_to_pay=self.is_intent_to_pay,
            is_payg=self.is_payg,
            is_single_rate_card=self.is_single_rate_card,
            is_variable_commitment=self.is_variable_commitment,
            line_net_amount=self.line_net_amount,
            major_set=self.major_set,
            net_unit_price=self.net_unit_price,
            operation_type=self.operation_type,
            order_header_id=self.order_header_id,
            order_line_id=self.order_line_id,
            order_line_number=self.order_line_number,
            order_number=self.order_number,
            order_type=self.order_type,
            original_promo_amount=self.original_promo_amount,
            overage_bill_to=self.overage_bill_to,
            overage_discount_percentage=self.overage_discount_percentage,
            overage_policy=self.overage_policy,
            partner_credit_amount=self.partner_credit_amount,
            partner_transaction_type=self.partner_transaction_type,
            payg_policy=self.payg_policy,
            payment_method=self.payment_method,
            payment_number=self.payment_number,
            payment_terms=self.payment_terms,
            price_period=self.price_period,
            pricing_model=self.pricing_model,
            products=self.products,
            program_type=self.program_type,
            promo_order_line_id=self.promo_order_line_id,
            promo_type=self.promo_type,
            promotion_pricing_type=self.promotion_pricing_type,
            provisioning_source=self.provisioning_source,
            quantity=self.quantity,
            rate_card_discount_percentage=self.rate_card_discount_percentage,
            rate_cards=self.rate_cards,
            ratecard_type=self.ratecard_type,
            renewal_opty_id=self.renewal_opty_id,
            renewal_opty_number=self.renewal_opty_number,
            renewal_opty_type=self.renewal_opty_type,
            renewed_subscribed_service_id=self.renewed_subscribed_service_id,
            reseller_addresses=self.reseller_addresses,
            reseller_contacts=self.reseller_contacts,
            reseller_customers=self.reseller_customers,
            revenue_line_id=self.revenue_line_id,
            revenue_line_number=self.revenue_line_number,
            revised_arr_in_lc=self.revised_arr_in_lc,
            revised_arr_in_sc=self.revised_arr_in_sc,
            sales_account_party_id=self.sales_account_party_id,
            sales_channel=self.sales_channel,
            serial_number=self.serial_number,
            service_to_addresses=self.service_to_addresses,
            service_to_contacts=self.service_to_contacts,
            service_to_customers=self.service_to_customers,
            sold_to_contacts=self.sold_to_contacts,
            sold_to_customers=self.sold_to_customers,
            start_date_type=self.start_date_type,
            status=self.status,
            subscribed_service_id=self.subscribed_service_id,
            subscription_id=self.subscription_id,
            subscription_source=self.subscription_source,
            system_arr_in_lc=self.system_arr_in_lc,
            system_arr_in_sc=self.system_arr_in_sc,
            system_atr_arr_in_lc=self.system_atr_arr_in_lc,
            system_atr_arr_in_sc=self.system_atr_arr_in_sc,
            term_value=self.term_value,
            term_value_uom=self.term_value_uom,
            time_agreement_end=self.time_agreement_end,
            time_created=self.time_created,
            time_customer_config=self.time_customer_config,
            time_end=self.time_end,
            time_majorset_end=self.time_majorset_end,
            time_majorset_start=self.time_majorset_start,
            time_payment_expiry=self.time_payment_expiry,
            time_provisioned=self.time_provisioned,
            time_service_configuration_email_sent=self.time_service_configuration_email_sent,
            time_start=self.time_start,
            time_updated=self.time_updated,
            time_welcome_email_sent=self.time_welcome_email_sent,
            total_value=self.total_value,
            transaction_extension_id=self.transaction_extension_id,
            type=self.type,
            updated_by=self.updated_by,
            used_amount=self.used_amount)


def get_subscribed_service(fields: Optional[Sequence[str]] = None,
                           subscribed_service_id: Optional[str] = None,
                           opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSubscribedServiceResult:
    """
    This data source provides details about a specific Subscribed Service resource in Oracle Cloud Infrastructure Onesubscription service.

    This API returns the subscribed service details corresponding to the id provided

    ## Example Usage

    ```python
    import pulumi
    import pulumi_oci as oci

    test_subscribed_service = oci.OneSubsription.get_subscribed_service(subscribed_service_id=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        fields=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
    ```


    :param Sequence[str] fields: Partial response refers to an optimization technique offered by the RESTful web APIs to return only the information  (fields) required by the client. In this mechanism, the client sends the required field names as the query parameters for an API to the server, and the server trims down the default response content by removing the fields that are not required by the client. The parameter used to control what fields to return should be a query string parameter called "fields" of type array, and usecollectionFormat
    :param str subscribed_service_id: The Subscribed Service Id
    """
    __args__ = dict()
    __args__['fields'] = fields
    __args__['subscribedServiceId'] = subscribed_service_id
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('oci:OneSubsription/getSubscribedService:getSubscribedService', __args__, opts=opts, typ=GetSubscribedServiceResult).value

    return AwaitableGetSubscribedServiceResult(
        admin_email=__ret__.admin_email,
        agreement_id=__ret__.agreement_id,
        agreement_name=__ret__.agreement_name,
        agreement_type=__ret__.agreement_type,
        available_amount=__ret__.available_amount,
        bill_to_addresses=__ret__.bill_to_addresses,
        bill_to_contacts=__ret__.bill_to_contacts,
        bill_to_customers=__ret__.bill_to_customers,
        billing_frequency=__ret__.billing_frequency,
        booking_opty_number=__ret__.booking_opty_number,
        buyer_email=__ret__.buyer_email,
        commitment_schedule_id=__ret__.commitment_schedule_id,
        commitment_services=__ret__.commitment_services,
        created_by=__ret__.created_by,
        credit_percentage=__ret__.credit_percentage,
        csi=__ret__.csi,
        customer_transaction_reference=__ret__.customer_transaction_reference,
        data_center=__ret__.data_center,
        data_center_region=__ret__.data_center_region,
        eligible_to_renew=__ret__.eligible_to_renew,
        end_user_addresses=__ret__.end_user_addresses,
        end_user_contacts=__ret__.end_user_contacts,
        end_user_customers=__ret__.end_user_customers,
        fields=__ret__.fields,
        fulfillment_set=__ret__.fulfillment_set,
        funded_allocation_value=__ret__.funded_allocation_value,
        id=__ret__.id,
        is_allowance=__ret__.is_allowance,
        is_cap_to_price_list=__ret__.is_cap_to_price_list,
        is_credit_enabled=__ret__.is_credit_enabled,
        is_having_usage=__ret__.is_having_usage,
        is_intent_to_pay=__ret__.is_intent_to_pay,
        is_payg=__ret__.is_payg,
        is_single_rate_card=__ret__.is_single_rate_card,
        is_variable_commitment=__ret__.is_variable_commitment,
        line_net_amount=__ret__.line_net_amount,
        major_set=__ret__.major_set,
        net_unit_price=__ret__.net_unit_price,
        operation_type=__ret__.operation_type,
        order_header_id=__ret__.order_header_id,
        order_line_id=__ret__.order_line_id,
        order_line_number=__ret__.order_line_number,
        order_number=__ret__.order_number,
        order_type=__ret__.order_type,
        original_promo_amount=__ret__.original_promo_amount,
        overage_bill_to=__ret__.overage_bill_to,
        overage_discount_percentage=__ret__.overage_discount_percentage,
        overage_policy=__ret__.overage_policy,
        partner_credit_amount=__ret__.partner_credit_amount,
        partner_transaction_type=__ret__.partner_transaction_type,
        payg_policy=__ret__.payg_policy,
        payment_method=__ret__.payment_method,
        payment_number=__ret__.payment_number,
        payment_terms=__ret__.payment_terms,
        price_period=__ret__.price_period,
        pricing_model=__ret__.pricing_model,
        products=__ret__.products,
        program_type=__ret__.program_type,
        promo_order_line_id=__ret__.promo_order_line_id,
        promo_type=__ret__.promo_type,
        promotion_pricing_type=__ret__.promotion_pricing_type,
        provisioning_source=__ret__.provisioning_source,
        quantity=__ret__.quantity,
        rate_card_discount_percentage=__ret__.rate_card_discount_percentage,
        rate_cards=__ret__.rate_cards,
        ratecard_type=__ret__.ratecard_type,
        renewal_opty_id=__ret__.renewal_opty_id,
        renewal_opty_number=__ret__.renewal_opty_number,
        renewal_opty_type=__ret__.renewal_opty_type,
        renewed_subscribed_service_id=__ret__.renewed_subscribed_service_id,
        reseller_addresses=__ret__.reseller_addresses,
        reseller_contacts=__ret__.reseller_contacts,
        reseller_customers=__ret__.reseller_customers,
        revenue_line_id=__ret__.revenue_line_id,
        revenue_line_number=__ret__.revenue_line_number,
        revised_arr_in_lc=__ret__.revised_arr_in_lc,
        revised_arr_in_sc=__ret__.revised_arr_in_sc,
        sales_account_party_id=__ret__.sales_account_party_id,
        sales_channel=__ret__.sales_channel,
        serial_number=__ret__.serial_number,
        service_to_addresses=__ret__.service_to_addresses,
        service_to_contacts=__ret__.service_to_contacts,
        service_to_customers=__ret__.service_to_customers,
        sold_to_contacts=__ret__.sold_to_contacts,
        sold_to_customers=__ret__.sold_to_customers,
        start_date_type=__ret__.start_date_type,
        status=__ret__.status,
        subscribed_service_id=__ret__.subscribed_service_id,
        subscription_id=__ret__.subscription_id,
        subscription_source=__ret__.subscription_source,
        system_arr_in_lc=__ret__.system_arr_in_lc,
        system_arr_in_sc=__ret__.system_arr_in_sc,
        system_atr_arr_in_lc=__ret__.system_atr_arr_in_lc,
        system_atr_arr_in_sc=__ret__.system_atr_arr_in_sc,
        term_value=__ret__.term_value,
        term_value_uom=__ret__.term_value_uom,
        time_agreement_end=__ret__.time_agreement_end,
        time_created=__ret__.time_created,
        time_customer_config=__ret__.time_customer_config,
        time_end=__ret__.time_end,
        time_majorset_end=__ret__.time_majorset_end,
        time_majorset_start=__ret__.time_majorset_start,
        time_payment_expiry=__ret__.time_payment_expiry,
        time_provisioned=__ret__.time_provisioned,
        time_service_configuration_email_sent=__ret__.time_service_configuration_email_sent,
        time_start=__ret__.time_start,
        time_updated=__ret__.time_updated,
        time_welcome_email_sent=__ret__.time_welcome_email_sent,
        total_value=__ret__.total_value,
        transaction_extension_id=__ret__.transaction_extension_id,
        type=__ret__.type,
        updated_by=__ret__.updated_by,
        used_amount=__ret__.used_amount)


@_utilities.lift_output_func(get_subscribed_service)
def get_subscribed_service_output(fields: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
                                  subscribed_service_id: Optional[pulumi.Input[str]] = None,
                                  opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSubscribedServiceResult]:
    """
    This data source provides details about a specific Subscribed Service resource in Oracle Cloud Infrastructure Onesubscription service.

    This API returns the subscribed service details corresponding to the id provided

    ## Example Usage

    ```python
    import pulumi
    import pulumi_oci as oci

    test_subscribed_service = oci.OneSubsription.get_subscribed_service(subscribed_service_id=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        fields=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
    ```


    :param Sequence[str] fields: Partial response refers to an optimization technique offered by the RESTful web APIs to return only the information  (fields) required by the client. In this mechanism, the client sends the required field names as the query parameters for an API to the server, and the server trims down the default response content by removing the fields that are not required by the client. The parameter used to control what fields to return should be a query string parameter called "fields" of type array, and usecollectionFormat
    :param str subscribed_service_id: The Subscribed Service Id
    """
    ...
