"use strict";
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DomainsApp = void 0;
const pulumi = __importStar(require("@pulumi/pulumi"));
const utilities = __importStar(require("../utilities"));
/**
 * This resource provides the App resource in Oracle Cloud Infrastructure Identity Domains service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/identity-domains/latest/App
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/identity_domains
 *
 * Create an App
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testApp = new oci.identity.DomainsApp("test_app", {
 *     basedOnTemplate: {
 *         value: appBasedOnTemplateValue,
 *         wellKnownId: "CustomWebAppTemplateId",
 *     },
 *     displayName: appDisplayName,
 *     idcsEndpoint: testDomain.url,
 *     schemas: ["urn:ietf:params:scim:schemas:oracle:idcs:App"],
 *     accessTokenExpiry: Number(appAccessTokenExpiry),
 *     active: appActive === "true",
 *     aliasApps: [{
 *         value: appAliasAppsValue,
 *     }],
 *     allUrlSchemesAllowed: appAllUrlSchemesAllowed === "true",
 *     allowAccessControl: appAllowAccessControl === "true",
 *     allowOffline: appAllowOffline === "true",
 *     allowedGrants: appAllowedGrants,
 *     allowedOperations: appAllowedOperations,
 *     allowedScopes: [{
 *         fqs: appAllowedScopesFqs,
 *     }],
 *     allowedTags: [{
 *         key: appAllowedTagsKey,
 *         value: appAllowedTagsValue,
 *     }],
 *     appIcon: appAppIcon,
 *     appSignonPolicy: {
 *         value: appAppSignonPolicyValue,
 *     },
 *     appThumbnail: appAppThumbnail,
 *     appsNetworkPerimeters: [{
 *         value: appAppsNetworkPerimetersValue,
 *     }],
 *     asOpcService: {
 *         value: appAsOpcServiceValue,
 *     },
 *     attrRenderingMetadatas: [{
 *         name: appAttrRenderingMetadataName,
 *         datatype: appAttrRenderingMetadataDatatype,
 *         helptext: appAttrRenderingMetadataHelptext,
 *         label: appAttrRenderingMetadataLabel,
 *         maxLength: Number(appAttrRenderingMetadataMaxLength),
 *         maxSize: Number(appAttrRenderingMetadataMaxSize),
 *         minLength: Number(appAttrRenderingMetadataMinLength),
 *         minSize: Number(appAttrRenderingMetadataMinSize),
 *         order: Number(appAttrRenderingMetadataOrder),
 *         readOnly: appAttrRenderingMetadataReadOnly === "true",
 *         regexp: appAttrRenderingMetadataRegexp,
 *         required: appAttrRenderingMetadataRequired === "true",
 *         section: appAttrRenderingMetadataSection,
 *         visible: appAttrRenderingMetadataVisible === "true",
 *         widget: appAttrRenderingMetadataWidget,
 *     }],
 *     attributeSets: ["all"],
 *     attributes: "",
 *     audience: appAudience,
 *     authorization: appAuthorization,
 *     bypassConsent: appBypassConsent === "true",
 *     certificates: [{
 *         certAlias: appCertificatesCertAlias,
 *     }],
 *     clientIpChecking: appClientIpChecking,
 *     clientType: appClientType,
 *     contactEmailAddress: appContactEmailAddress,
 *     delegatedServiceNames: appDelegatedServiceNames,
 *     description: appDescription,
 *     disableKmsiTokenAuthentication: appDisableKmsiTokenAuthentication === "true",
 *     errorPageUrl: appErrorPageUrl,
 *     forceDelete: appForceDelete === "true",
 *     homePageUrl: appHomePageUrl,
 *     icon: appIcon,
 *     id: appId,
 *     idTokenEncAlgo: appIdTokenEncAlgo,
 *     identityProviders: [{
 *         value: appIdentityProvidersValue,
 *     }],
 *     idpPolicy: {
 *         value: appIdpPolicyValue,
 *     },
 *     isAliasApp: appIsAliasApp === "true",
 *     isEnterpriseApp: appIsEnterpriseApp === "true",
 *     isFormFill: appIsFormFill === "true",
 *     isKerberosRealm: appIsKerberosRealm === "true",
 *     isLoginTarget: appIsLoginTarget === "true",
 *     isMobileTarget: appIsMobileTarget === "true",
 *     isMulticloudServiceApp: appIsMulticloudServiceApp === "true",
 *     isOauthClient: appIsOauthClient === "true",
 *     isOauthResource: appIsOauthResource === "true",
 *     isObligationCapable: appIsObligationCapable === "true",
 *     isRadiusApp: appIsRadiusApp === "true",
 *     isSamlServiceProvider: appIsSamlServiceProvider === "true",
 *     isUnmanagedApp: appIsUnmanagedApp === "true",
 *     isWebTierPolicy: appIsWebTierPolicy === "true",
 *     landingPageUrl: appLandingPageUrl,
 *     linkingCallbackUrl: appLinkingCallbackUrl,
 *     loginMechanism: appLoginMechanism,
 *     loginPageUrl: appLoginPageUrl,
 *     logoutPageUrl: appLogoutPageUrl,
 *     logoutUri: appLogoutUri,
 *     name: appName,
 *     ocid: appOcid,
 *     postLogoutRedirectUris: appPostLogoutRedirectUris,
 *     privacyPolicyUrl: appPrivacyPolicyUrl,
 *     productLogoUrl: appProductLogoUrl,
 *     productName: appProductName,
 *     protectableSecondaryAudiences: [{
 *         value: appProtectableSecondaryAudiencesValue,
 *     }],
 *     radiusPolicy: {
 *         value: appRadiusPolicyValue,
 *     },
 *     redirectUris: appRedirectUris,
 *     refreshTokenExpiry: Number(appRefreshTokenExpiry),
 *     resourceTypeSchemaVersion: appResourceTypeSchemaVersion,
 *     samlServiceProvider: {
 *         value: appSamlServiceProviderValue,
 *     },
 *     scopes: [{
 *         value: appScopesValue,
 *         description: appScopesDescription,
 *         displayName: appScopesDisplayName,
 *         requiresConsent: appScopesRequiresConsent === "true",
 *     }],
 *     secondaryAudiences: ["secondaryAudiences"],
 *     serviceParams: [{
 *         name: appServiceParamsName,
 *         value: appServiceParamsValue,
 *     }],
 *     serviceTypeUrn: appServiceTypeUrn,
 *     serviceTypeVersion: appServiceTypeVersion,
 *     showInMyApps: appShowInMyApps === "true",
 *     signonPolicy: {
 *         value: appSignonPolicyValue,
 *     },
 *     tags: [{
 *         key: appTagsKey,
 *         value: appTagsValue,
 *     }],
 *     termsOfServiceUrl: appTermsOfServiceUrl,
 *     termsOfUse: {
 *         value: appTermsOfUseValue,
 *     },
 *     trustPolicies: [{
 *         value: appTrustPoliciesValue,
 *     }],
 *     trustScope: appTrustScope,
 *     urnietfparamsscimschemasoracleidcsextensionOciTags: {
 *         definedTags: [{
 *             key: appUrnietfparamsscimschemasoracleidcsextensionOciTagsDefinedTagsKey,
 *             namespace: appUrnietfparamsscimschemasoracleidcsextensionOciTagsDefinedTagsNamespace,
 *             value: appUrnietfparamsscimschemasoracleidcsextensionOciTagsDefinedTagsValue,
 *         }],
 *         freeformTags: [{
 *             key: appUrnietfparamsscimschemasoracleidcsextensionOciTagsFreeformTagsKey,
 *             value: appUrnietfparamsscimschemasoracleidcsextensionOciTagsFreeformTagsValue,
 *         }],
 *     },
 *     urnietfparamsscimschemasoracleidcsextensiondbcsApp: {
 *         domainApp: {
 *             value: appUrnietfparamsscimschemasoracleidcsextensiondbcsAppDomainAppValue,
 *         },
 *         domainName: "domainName",
 *     },
 *     urnietfparamsscimschemasoracleidcsextensionenterpriseAppApp: {
 *         allowAuthzDecisionTtl: Number(appUrnietfparamsscimschemasoracleidcsextensionenterpriseAppAppAllowAuthzDecisionTtl),
 *         allowAuthzPolicy: {
 *             value: appUrnietfparamsscimschemasoracleidcsextensionenterpriseAppAppAllowAuthzPolicyValue,
 *         },
 *         appResources: [{
 *             value: appUrnietfparamsscimschemasoracleidcsextensionenterpriseAppAppAppResourcesValue,
 *         }],
 *         denyAuthzDecisionTtl: Number(appUrnietfparamsscimschemasoracleidcsextensionenterpriseAppAppDenyAuthzDecisionTtl),
 *         denyAuthzPolicy: {
 *             value: appUrnietfparamsscimschemasoracleidcsextensionenterpriseAppAppDenyAuthzPolicyValue,
 *         },
 *     },
 *     urnietfparamsscimschemasoracleidcsextensionformFillAppApp: {
 *         configuration: appUrnietfparamsscimschemasoracleidcsextensionformFillAppAppConfiguration,
 *         formCredMethod: appUrnietfparamsscimschemasoracleidcsextensionformFillAppAppFormCredMethod,
 *         formCredentialSharingGroupId: appUrnietfparamsscimschemasoracleidcsextensionformFillAppAppFormCredentialSharingGroupId,
 *         formFillUrlMatches: [{
 *             formUrl: appUrnietfparamsscimschemasoracleidcsextensionformFillAppAppFormFillUrlMatchFormUrl,
 *             formUrlMatchType: appUrnietfparamsscimschemasoracleidcsextensionformFillAppAppFormFillUrlMatchFormUrlMatchType,
 *         }],
 *         formType: appUrnietfparamsscimschemasoracleidcsextensionformFillAppAppFormType,
 *         revealPasswordOnForm: appUrnietfparamsscimschemasoracleidcsextensionformFillAppAppRevealPasswordOnForm === "true",
 *         userNameFormExpression: appUrnietfparamsscimschemasoracleidcsextensionformFillAppAppUserNameFormExpression,
 *         userNameFormTemplate: appUrnietfparamsscimschemasoracleidcsextensionformFillAppAppUserNameFormTemplate,
 *     },
 *     urnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplate: {
 *         configuration: appUrnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplateConfiguration,
 *         formCredMethod: appUrnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplateFormCredMethod,
 *         formCredentialSharingGroupId: appUrnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplateFormCredentialSharingGroupId,
 *         formFillUrlMatches: [{
 *             formUrl: appUrnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplateFormFillUrlMatchFormUrl,
 *             formUrlMatchType: appUrnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplateFormFillUrlMatchFormUrlMatchType,
 *         }],
 *         formType: appUrnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplateFormType,
 *         revealPasswordOnForm: appUrnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplateRevealPasswordOnForm === "true",
 *         syncFromTemplate: appUrnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplateSyncFromTemplate === "true",
 *         userNameFormExpression: appUrnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplateUserNameFormExpression,
 *         userNameFormTemplate: appUrnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplateUserNameFormTemplate,
 *     },
 *     urnietfparamsscimschemasoracleidcsextensionkerberosRealmApp: {
 *         defaultEncryptionSaltType: appUrnietfparamsscimschemasoracleidcsextensionkerberosRealmAppDefaultEncryptionSaltType,
 *         masterKey: appUrnietfparamsscimschemasoracleidcsextensionkerberosRealmAppMasterKey,
 *         maxRenewableAge: Number(appUrnietfparamsscimschemasoracleidcsextensionkerberosRealmAppMaxRenewableAge),
 *         maxTicketLife: Number(appUrnietfparamsscimschemasoracleidcsextensionkerberosRealmAppMaxTicketLife),
 *         realmName: appUrnietfparamsscimschemasoracleidcsextensionkerberosRealmAppRealmName,
 *         supportedEncryptionSaltTypes: appUrnietfparamsscimschemasoracleidcsextensionkerberosRealmAppSupportedEncryptionSaltTypes,
 *         ticketFlags: Number(appUrnietfparamsscimschemasoracleidcsextensionkerberosRealmAppTicketFlags),
 *     },
 *     urnietfparamsscimschemasoracleidcsextensionmanagedappApp: {
 *         adminConsentGranted: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppAdminConsentGranted === "true",
 *         bundleConfigurationProperties: [{
 *             icfType: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundleConfigurationPropertiesIcfType,
 *             name: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundleConfigurationPropertiesName,
 *             required: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundleConfigurationPropertiesRequired === "true",
 *             confidential: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundleConfigurationPropertiesConfidential === "true",
 *             displayName: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundleConfigurationPropertiesDisplayName,
 *             helpMessage: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundleConfigurationPropertiesHelpMessage,
 *             order: Number(appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundleConfigurationPropertiesOrder),
 *             values: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundleConfigurationPropertiesValue,
 *         }],
 *         bundlePoolConfiguration: {
 *             maxIdle: Number(appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundlePoolConfigurationMaxIdle),
 *             maxObjects: Number(appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundlePoolConfigurationMaxObjects),
 *             maxWait: Number(appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundlePoolConfigurationMaxWait),
 *             minEvictableIdleTimeMillis: Number(appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundlePoolConfigurationMinEvictableIdleTimeMillis),
 *             minIdle: Number(appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppBundlePoolConfigurationMinIdle),
 *         },
 *         connected: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppConnected === "true",
 *         enableAuthSyncNewUserNotification: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppEnableAuthSyncNewUserNotification === "true",
 *         enableSync: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppEnableSync === "true",
 *         enableSyncSummaryReportNotification: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppEnableSyncSummaryReportNotification === "true",
 *         flatFileBundleConfigurationProperties: [{
 *             icfType: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppFlatFileBundleConfigurationPropertiesIcfType,
 *             name: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppFlatFileBundleConfigurationPropertiesName,
 *             required: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppFlatFileBundleConfigurationPropertiesRequired === "true",
 *             confidential: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppFlatFileBundleConfigurationPropertiesConfidential === "true",
 *             displayName: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppFlatFileBundleConfigurationPropertiesDisplayName,
 *             helpMessage: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppFlatFileBundleConfigurationPropertiesHelpMessage,
 *             order: Number(appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppFlatFileBundleConfigurationPropertiesOrder),
 *             values: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppFlatFileBundleConfigurationPropertiesValue,
 *         }],
 *         flatFileConnectorBundle: {
 *             value: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppFlatFileConnectorBundleValue,
 *             display: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppFlatFileConnectorBundleDisplay,
 *             wellKnownId: testWellKnown.id,
 *         },
 *         isAuthoritative: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppIsAuthoritative === "true",
 *         threeLeggedOauthCredential: {
 *             accessToken: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppThreeLeggedOauthCredentialAccessToken,
 *             accessTokenExpiry: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppThreeLeggedOauthCredentialAccessTokenExpiry,
 *             refreshToken: appUrnietfparamsscimschemasoracleidcsextensionmanagedappAppThreeLeggedOauthCredentialRefreshToken,
 *         },
 *     },
 *     urnietfparamsscimschemasoracleidcsextensionmulticloudServiceAppApp: {
 *         multicloudServiceType: appUrnietfparamsscimschemasoracleidcsextensionmulticloudServiceAppAppMulticloudServiceType,
 *         multicloudPlatformUrl: appUrnietfparamsscimschemasoracleidcsextensionmulticloudServiceAppAppMulticloudPlatformUrl,
 *     },
 *     urnietfparamsscimschemasoracleidcsextensionopcServiceApp: {
 *         serviceInstanceIdentifier: appUrnietfparamsscimschemasoracleidcsextensionopcServiceAppServiceInstanceIdentifier,
 *     },
 *     urnietfparamsscimschemasoracleidcsextensionradiusAppApp: {
 *         clientIp: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppClientIp,
 *         includeGroupInResponse: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppIncludeGroupInResponse === "true",
 *         port: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppPort,
 *         secretKey: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppSecretKey,
 *         captureClientIp: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppCaptureClientIp === "true",
 *         countryCodeResponseAttributeId: "1",
 *         endUserIpAttribute: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppEndUserIpAttribute,
 *         groupMembershipRadiusAttribute: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppGroupMembershipRadiusAttribute,
 *         groupMembershipToReturns: [{
 *             value: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppGroupMembershipToReturnValue,
 *         }],
 *         groupNameFormat: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppGroupNameFormat,
 *         passwordAndOtpTogether: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppPasswordAndOtpTogether === "true",
 *         radiusVendorSpecificId: "radiusVendorSpecificId",
 *         responseFormat: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppResponseFormat,
 *         responseFormatDelimiter: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppResponseFormatDelimiter,
 *         typeOfRadiusApp: appUrnietfparamsscimschemasoracleidcsextensionradiusAppAppTypeOfRadiusApp,
 *     },
 *     urnietfparamsscimschemasoracleidcsextensionrequestableApp: {
 *         requestable: appUrnietfparamsscimschemasoracleidcsextensionrequestableAppRequestable === "true",
 *     },
 *     urnietfparamsscimschemasoracleidcsextensionsamlServiceProviderApp: {
 *         assertionConsumerUrl: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppAssertionConsumerUrl,
 *         encryptAssertion: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppEncryptAssertion === "true",
 *         encryptionAlgorithm: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppEncryptionAlgorithm,
 *         encryptionCertificate: "encryptionCertificate",
 *         federationProtocol: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppFederationProtocol,
 *         groupAssertionAttributes: [{
 *             name: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppGroupAssertionAttributesName,
 *             condition: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppGroupAssertionAttributesCondition,
 *             format: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppGroupAssertionAttributesFormat,
 *             groupName: "groupName",
 *         }],
 *         hokAcsUrl: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppHokAcsUrl,
 *         hokRequired: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppHokRequired === "true",
 *         includeSigningCertInSignature: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppIncludeSigningCertInSignature === "true",
 *         keyEncryptionAlgorithm: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppKeyEncryptionAlgorithm,
 *         logoutBinding: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppLogoutBinding,
 *         logoutEnabled: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppLogoutEnabled === "true",
 *         logoutRequestUrl: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppLogoutRequestUrl,
 *         logoutResponseUrl: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppLogoutResponseUrl,
 *         metadata: "metadata",
 *         nameIdFormat: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppNameIdFormat,
 *         nameIdUserstoreAttribute: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppNameIdUserstoreAttribute,
 *         partnerProviderId: "partnerProviderId",
 *         partnerProviderPattern: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppPartnerProviderPattern,
 *         signResponseOrAssertion: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppSignResponseOrAssertion,
 *         signatureHashAlgorithm: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppSignatureHashAlgorithm,
 *         signingCertificate: "signingCertificate",
 *         succinctId: "succinctId",
 *         userAssertionAttributes: [{
 *             name: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppUserAssertionAttributesName,
 *             userStoreAttributeName: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppUserAssertionAttributesUserStoreAttributeName,
 *             format: appUrnietfparamsscimschemasoracleidcsextensionsamlServiceProviderAppUserAssertionAttributesFormat,
 *         }],
 *     },
 *     urnietfparamsscimschemasoracleidcsextensionwebTierPolicyApp: {
 *         resourceRef: appUrnietfparamsscimschemasoracleidcsextensionwebTierPolicyAppResourceRef === "true",
 *         webTierPolicyAzControl: appUrnietfparamsscimschemasoracleidcsextensionwebTierPolicyAppWebTierPolicyAzControl,
 *         webTierPolicyJson: appUrnietfparamsscimschemasoracleidcsextensionwebTierPolicyAppWebTierPolicyJson,
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * Apps can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Identity/domainsApp:DomainsApp test_app "idcsEndpoint/{idcsEndpoint}/apps/{appId}"
 * ```
 */
class DomainsApp extends pulumi.CustomResource {
    /**
     * Get an existing DomainsApp resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name, id, state, opts) {
        return new DomainsApp(name, state, { ...opts, id: id });
    }
    /** @internal */
    static __pulumiType = 'oci:Identity/domainsApp:DomainsApp';
    /**
     * Returns true if the given object is an instance of DomainsApp.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj) {
        if (obj === undefined || obj === null) {
            return false;
        }
        return obj['__pulumiType'] === DomainsApp.__pulumiType;
    }
    constructor(name, argsOrState, opts) {
        let resourceInputs = {};
        opts = opts || {};
        if (opts.id) {
            const state = argsOrState;
            resourceInputs["accessTokenExpiry"] = state?.accessTokenExpiry;
            resourceInputs["accounts"] = state?.accounts;
            resourceInputs["active"] = state?.active;
            resourceInputs["adminRoles"] = state?.adminRoles;
            resourceInputs["aliasApps"] = state?.aliasApps;
            resourceInputs["allUrlSchemesAllowed"] = state?.allUrlSchemesAllowed;
            resourceInputs["allowAccessControl"] = state?.allowAccessControl;
            resourceInputs["allowOffline"] = state?.allowOffline;
            resourceInputs["allowedGrants"] = state?.allowedGrants;
            resourceInputs["allowedOperations"] = state?.allowedOperations;
            resourceInputs["allowedScopes"] = state?.allowedScopes;
            resourceInputs["allowedTags"] = state?.allowedTags;
            resourceInputs["appIcon"] = state?.appIcon;
            resourceInputs["appSignonPolicy"] = state?.appSignonPolicy;
            resourceInputs["appThumbnail"] = state?.appThumbnail;
            resourceInputs["appsNetworkPerimeters"] = state?.appsNetworkPerimeters;
            resourceInputs["asOpcService"] = state?.asOpcService;
            resourceInputs["attrRenderingMetadatas"] = state?.attrRenderingMetadatas;
            resourceInputs["attributeSets"] = state?.attributeSets;
            resourceInputs["attributes"] = state?.attributes;
            resourceInputs["audience"] = state?.audience;
            resourceInputs["authorization"] = state?.authorization;
            resourceInputs["basedOnTemplate"] = state?.basedOnTemplate;
            resourceInputs["bypassConsent"] = state?.bypassConsent;
            resourceInputs["callbackServiceUrl"] = state?.callbackServiceUrl;
            resourceInputs["certificates"] = state?.certificates;
            resourceInputs["clientIpChecking"] = state?.clientIpChecking;
            resourceInputs["clientSecret"] = state?.clientSecret;
            resourceInputs["clientType"] = state?.clientType;
            resourceInputs["cloudControlProperties"] = state?.cloudControlProperties;
            resourceInputs["compartmentOcid"] = state?.compartmentOcid;
            resourceInputs["contactEmailAddress"] = state?.contactEmailAddress;
            resourceInputs["delegatedServiceNames"] = state?.delegatedServiceNames;
            resourceInputs["deleteInProgress"] = state?.deleteInProgress;
            resourceInputs["description"] = state?.description;
            resourceInputs["disableKmsiTokenAuthentication"] = state?.disableKmsiTokenAuthentication;
            resourceInputs["displayName"] = state?.displayName;
            resourceInputs["domainOcid"] = state?.domainOcid;
            resourceInputs["editableAttributes"] = state?.editableAttributes;
            resourceInputs["errorPageUrl"] = state?.errorPageUrl;
            resourceInputs["forceDelete"] = state?.forceDelete;
            resourceInputs["grantedAppRoles"] = state?.grantedAppRoles;
            resourceInputs["grants"] = state?.grants;
            resourceInputs["hashedClientSecret"] = state?.hashedClientSecret;
            resourceInputs["homePageUrl"] = state?.homePageUrl;
            resourceInputs["icon"] = state?.icon;
            resourceInputs["idTokenEncAlgo"] = state?.idTokenEncAlgo;
            resourceInputs["idcsCreatedBies"] = state?.idcsCreatedBies;
            resourceInputs["idcsEndpoint"] = state?.idcsEndpoint;
            resourceInputs["idcsLastModifiedBies"] = state?.idcsLastModifiedBies;
            resourceInputs["idcsLastUpgradedInRelease"] = state?.idcsLastUpgradedInRelease;
            resourceInputs["idcsPreventedOperations"] = state?.idcsPreventedOperations;
            resourceInputs["identityProviders"] = state?.identityProviders;
            resourceInputs["idpPolicy"] = state?.idpPolicy;
            resourceInputs["infrastructure"] = state?.infrastructure;
            resourceInputs["isAliasApp"] = state?.isAliasApp;
            resourceInputs["isDatabaseService"] = state?.isDatabaseService;
            resourceInputs["isEnterpriseApp"] = state?.isEnterpriseApp;
            resourceInputs["isFormFill"] = state?.isFormFill;
            resourceInputs["isKerberosRealm"] = state?.isKerberosRealm;
            resourceInputs["isLoginTarget"] = state?.isLoginTarget;
            resourceInputs["isManagedApp"] = state?.isManagedApp;
            resourceInputs["isMobileTarget"] = state?.isMobileTarget;
            resourceInputs["isMulticloudServiceApp"] = state?.isMulticloudServiceApp;
            resourceInputs["isOauthClient"] = state?.isOauthClient;
            resourceInputs["isOauthResource"] = state?.isOauthResource;
            resourceInputs["isObligationCapable"] = state?.isObligationCapable;
            resourceInputs["isOpcService"] = state?.isOpcService;
            resourceInputs["isRadiusApp"] = state?.isRadiusApp;
            resourceInputs["isSamlServiceProvider"] = state?.isSamlServiceProvider;
            resourceInputs["isUnmanagedApp"] = state?.isUnmanagedApp;
            resourceInputs["isWebTierPolicy"] = state?.isWebTierPolicy;
            resourceInputs["landingPageUrl"] = state?.landingPageUrl;
            resourceInputs["linkingCallbackUrl"] = state?.linkingCallbackUrl;
            resourceInputs["loginMechanism"] = state?.loginMechanism;
            resourceInputs["loginPageUrl"] = state?.loginPageUrl;
            resourceInputs["logoutPageUrl"] = state?.logoutPageUrl;
            resourceInputs["logoutUri"] = state?.logoutUri;
            resourceInputs["metas"] = state?.metas;
            resourceInputs["meterAsOpcService"] = state?.meterAsOpcService;
            resourceInputs["migrated"] = state?.migrated;
            resourceInputs["name"] = state?.name;
            resourceInputs["ocid"] = state?.ocid;
            resourceInputs["postLogoutRedirectUris"] = state?.postLogoutRedirectUris;
            resourceInputs["privacyPolicyUrl"] = state?.privacyPolicyUrl;
            resourceInputs["productLogoUrl"] = state?.productLogoUrl;
            resourceInputs["productName"] = state?.productName;
            resourceInputs["protectableSecondaryAudiences"] = state?.protectableSecondaryAudiences;
            resourceInputs["radiusPolicy"] = state?.radiusPolicy;
            resourceInputs["readyToUpgrade"] = state?.readyToUpgrade;
            resourceInputs["redirectUris"] = state?.redirectUris;
            resourceInputs["refreshTokenExpiry"] = state?.refreshTokenExpiry;
            resourceInputs["resourceTypeSchemaVersion"] = state?.resourceTypeSchemaVersion;
            resourceInputs["samlServiceProvider"] = state?.samlServiceProvider;
            resourceInputs["schemas"] = state?.schemas;
            resourceInputs["scopes"] = state?.scopes;
            resourceInputs["secondaryAudiences"] = state?.secondaryAudiences;
            resourceInputs["serviceParams"] = state?.serviceParams;
            resourceInputs["serviceTypeUrn"] = state?.serviceTypeUrn;
            resourceInputs["serviceTypeVersion"] = state?.serviceTypeVersion;
            resourceInputs["showInMyApps"] = state?.showInMyApps;
            resourceInputs["signonPolicy"] = state?.signonPolicy;
            resourceInputs["tags"] = state?.tags;
            resourceInputs["tenancyOcid"] = state?.tenancyOcid;
            resourceInputs["termsOfServiceUrl"] = state?.termsOfServiceUrl;
            resourceInputs["termsOfUse"] = state?.termsOfUse;
            resourceInputs["trustPolicies"] = state?.trustPolicies;
            resourceInputs["trustScope"] = state?.trustScope;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionOciTags"] = state?.urnietfparamsscimschemasoracleidcsextensionOciTags;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensiondbcsApp"] = state?.urnietfparamsscimschemasoracleidcsextensiondbcsApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionenterpriseAppApp"] = state?.urnietfparamsscimschemasoracleidcsextensionenterpriseAppApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionformFillAppApp"] = state?.urnietfparamsscimschemasoracleidcsextensionformFillAppApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplate"] = state?.urnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplate;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionkerberosRealmApp"] = state?.urnietfparamsscimschemasoracleidcsextensionkerberosRealmApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionmanagedappApp"] = state?.urnietfparamsscimschemasoracleidcsextensionmanagedappApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionmulticloudServiceAppApp"] = state?.urnietfparamsscimschemasoracleidcsextensionmulticloudServiceAppApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionopcServiceApp"] = state?.urnietfparamsscimschemasoracleidcsextensionopcServiceApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionradiusAppApp"] = state?.urnietfparamsscimschemasoracleidcsextensionradiusAppApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionrequestableApp"] = state?.urnietfparamsscimschemasoracleidcsextensionrequestableApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionsamlServiceProviderApp"] = state?.urnietfparamsscimschemasoracleidcsextensionsamlServiceProviderApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionwebTierPolicyApp"] = state?.urnietfparamsscimschemasoracleidcsextensionwebTierPolicyApp;
            resourceInputs["userRoles"] = state?.userRoles;
        }
        else {
            const args = argsOrState;
            if (args?.basedOnTemplate === undefined && !opts.urn) {
                throw new Error("Missing required property 'basedOnTemplate'");
            }
            if (args?.displayName === undefined && !opts.urn) {
                throw new Error("Missing required property 'displayName'");
            }
            if (args?.idcsEndpoint === undefined && !opts.urn) {
                throw new Error("Missing required property 'idcsEndpoint'");
            }
            if (args?.schemas === undefined && !opts.urn) {
                throw new Error("Missing required property 'schemas'");
            }
            resourceInputs["accessTokenExpiry"] = args?.accessTokenExpiry;
            resourceInputs["active"] = args?.active;
            resourceInputs["aliasApps"] = args?.aliasApps;
            resourceInputs["allUrlSchemesAllowed"] = args?.allUrlSchemesAllowed;
            resourceInputs["allowAccessControl"] = args?.allowAccessControl;
            resourceInputs["allowOffline"] = args?.allowOffline;
            resourceInputs["allowedGrants"] = args?.allowedGrants;
            resourceInputs["allowedOperations"] = args?.allowedOperations;
            resourceInputs["allowedScopes"] = args?.allowedScopes;
            resourceInputs["allowedTags"] = args?.allowedTags;
            resourceInputs["appIcon"] = args?.appIcon;
            resourceInputs["appSignonPolicy"] = args?.appSignonPolicy;
            resourceInputs["appThumbnail"] = args?.appThumbnail;
            resourceInputs["appsNetworkPerimeters"] = args?.appsNetworkPerimeters;
            resourceInputs["asOpcService"] = args?.asOpcService;
            resourceInputs["attrRenderingMetadatas"] = args?.attrRenderingMetadatas;
            resourceInputs["attributeSets"] = args?.attributeSets;
            resourceInputs["attributes"] = args?.attributes;
            resourceInputs["audience"] = args?.audience;
            resourceInputs["authorization"] = args?.authorization;
            resourceInputs["basedOnTemplate"] = args?.basedOnTemplate;
            resourceInputs["bypassConsent"] = args?.bypassConsent;
            resourceInputs["certificates"] = args?.certificates;
            resourceInputs["clientIpChecking"] = args?.clientIpChecking;
            resourceInputs["clientType"] = args?.clientType;
            resourceInputs["contactEmailAddress"] = args?.contactEmailAddress;
            resourceInputs["delegatedServiceNames"] = args?.delegatedServiceNames;
            resourceInputs["description"] = args?.description;
            resourceInputs["disableKmsiTokenAuthentication"] = args?.disableKmsiTokenAuthentication;
            resourceInputs["displayName"] = args?.displayName;
            resourceInputs["errorPageUrl"] = args?.errorPageUrl;
            resourceInputs["forceDelete"] = args?.forceDelete;
            resourceInputs["homePageUrl"] = args?.homePageUrl;
            resourceInputs["icon"] = args?.icon;
            resourceInputs["idTokenEncAlgo"] = args?.idTokenEncAlgo;
            resourceInputs["idcsEndpoint"] = args?.idcsEndpoint;
            resourceInputs["identityProviders"] = args?.identityProviders;
            resourceInputs["idpPolicy"] = args?.idpPolicy;
            resourceInputs["isAliasApp"] = args?.isAliasApp;
            resourceInputs["isEnterpriseApp"] = args?.isEnterpriseApp;
            resourceInputs["isFormFill"] = args?.isFormFill;
            resourceInputs["isKerberosRealm"] = args?.isKerberosRealm;
            resourceInputs["isLoginTarget"] = args?.isLoginTarget;
            resourceInputs["isMobileTarget"] = args?.isMobileTarget;
            resourceInputs["isMulticloudServiceApp"] = args?.isMulticloudServiceApp;
            resourceInputs["isOauthClient"] = args?.isOauthClient;
            resourceInputs["isOauthResource"] = args?.isOauthResource;
            resourceInputs["isObligationCapable"] = args?.isObligationCapable;
            resourceInputs["isRadiusApp"] = args?.isRadiusApp;
            resourceInputs["isSamlServiceProvider"] = args?.isSamlServiceProvider;
            resourceInputs["isUnmanagedApp"] = args?.isUnmanagedApp;
            resourceInputs["isWebTierPolicy"] = args?.isWebTierPolicy;
            resourceInputs["landingPageUrl"] = args?.landingPageUrl;
            resourceInputs["linkingCallbackUrl"] = args?.linkingCallbackUrl;
            resourceInputs["loginMechanism"] = args?.loginMechanism;
            resourceInputs["loginPageUrl"] = args?.loginPageUrl;
            resourceInputs["logoutPageUrl"] = args?.logoutPageUrl;
            resourceInputs["logoutUri"] = args?.logoutUri;
            resourceInputs["name"] = args?.name;
            resourceInputs["ocid"] = args?.ocid;
            resourceInputs["postLogoutRedirectUris"] = args?.postLogoutRedirectUris;
            resourceInputs["privacyPolicyUrl"] = args?.privacyPolicyUrl;
            resourceInputs["productLogoUrl"] = args?.productLogoUrl;
            resourceInputs["productName"] = args?.productName;
            resourceInputs["protectableSecondaryAudiences"] = args?.protectableSecondaryAudiences;
            resourceInputs["radiusPolicy"] = args?.radiusPolicy;
            resourceInputs["redirectUris"] = args?.redirectUris;
            resourceInputs["refreshTokenExpiry"] = args?.refreshTokenExpiry;
            resourceInputs["resourceTypeSchemaVersion"] = args?.resourceTypeSchemaVersion;
            resourceInputs["samlServiceProvider"] = args?.samlServiceProvider;
            resourceInputs["schemas"] = args?.schemas;
            resourceInputs["scopes"] = args?.scopes;
            resourceInputs["secondaryAudiences"] = args?.secondaryAudiences;
            resourceInputs["serviceParams"] = args?.serviceParams;
            resourceInputs["serviceTypeUrn"] = args?.serviceTypeUrn;
            resourceInputs["serviceTypeVersion"] = args?.serviceTypeVersion;
            resourceInputs["showInMyApps"] = args?.showInMyApps;
            resourceInputs["signonPolicy"] = args?.signonPolicy;
            resourceInputs["tags"] = args?.tags;
            resourceInputs["termsOfServiceUrl"] = args?.termsOfServiceUrl;
            resourceInputs["termsOfUse"] = args?.termsOfUse;
            resourceInputs["trustPolicies"] = args?.trustPolicies;
            resourceInputs["trustScope"] = args?.trustScope;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionOciTags"] = args?.urnietfparamsscimschemasoracleidcsextensionOciTags;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensiondbcsApp"] = args?.urnietfparamsscimschemasoracleidcsextensiondbcsApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionenterpriseAppApp"] = args?.urnietfparamsscimschemasoracleidcsextensionenterpriseAppApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionformFillAppApp"] = args?.urnietfparamsscimschemasoracleidcsextensionformFillAppApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplate"] = args?.urnietfparamsscimschemasoracleidcsextensionformFillAppTemplateAppTemplate;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionkerberosRealmApp"] = args?.urnietfparamsscimschemasoracleidcsextensionkerberosRealmApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionmanagedappApp"] = args?.urnietfparamsscimschemasoracleidcsextensionmanagedappApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionmulticloudServiceAppApp"] = args?.urnietfparamsscimschemasoracleidcsextensionmulticloudServiceAppApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionopcServiceApp"] = args?.urnietfparamsscimschemasoracleidcsextensionopcServiceApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionradiusAppApp"] = args?.urnietfparamsscimschemasoracleidcsextensionradiusAppApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionrequestableApp"] = args?.urnietfparamsscimschemasoracleidcsextensionrequestableApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionsamlServiceProviderApp"] = args?.urnietfparamsscimschemasoracleidcsextensionsamlServiceProviderApp;
            resourceInputs["urnietfparamsscimschemasoracleidcsextensionwebTierPolicyApp"] = args?.urnietfparamsscimschemasoracleidcsextensionwebTierPolicyApp;
            resourceInputs["accounts"] = undefined /*out*/;
            resourceInputs["adminRoles"] = undefined /*out*/;
            resourceInputs["callbackServiceUrl"] = undefined /*out*/;
            resourceInputs["clientSecret"] = undefined /*out*/;
            resourceInputs["cloudControlProperties"] = undefined /*out*/;
            resourceInputs["compartmentOcid"] = undefined /*out*/;
            resourceInputs["deleteInProgress"] = undefined /*out*/;
            resourceInputs["domainOcid"] = undefined /*out*/;
            resourceInputs["editableAttributes"] = undefined /*out*/;
            resourceInputs["grantedAppRoles"] = undefined /*out*/;
            resourceInputs["grants"] = undefined /*out*/;
            resourceInputs["hashedClientSecret"] = undefined /*out*/;
            resourceInputs["idcsCreatedBies"] = undefined /*out*/;
            resourceInputs["idcsLastModifiedBies"] = undefined /*out*/;
            resourceInputs["idcsLastUpgradedInRelease"] = undefined /*out*/;
            resourceInputs["idcsPreventedOperations"] = undefined /*out*/;
            resourceInputs["infrastructure"] = undefined /*out*/;
            resourceInputs["isDatabaseService"] = undefined /*out*/;
            resourceInputs["isManagedApp"] = undefined /*out*/;
            resourceInputs["isOpcService"] = undefined /*out*/;
            resourceInputs["metas"] = undefined /*out*/;
            resourceInputs["meterAsOpcService"] = undefined /*out*/;
            resourceInputs["migrated"] = undefined /*out*/;
            resourceInputs["readyToUpgrade"] = undefined /*out*/;
            resourceInputs["tenancyOcid"] = undefined /*out*/;
            resourceInputs["userRoles"] = undefined /*out*/;
        }
        opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
        super(DomainsApp.__pulumiType, name, resourceInputs, opts);
    }
}
exports.DomainsApp = DomainsApp;
//# sourceMappingURL=domainsApp.js.map