diff --git a/CHANGELOG.md b/CHANGELOG.md
index 228235d3a..40a8a297d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,8 @@ CHANGELOG
=========
## HEAD (Unreleased)
-_(none)_
+* Upgrade to Pulumi v2.9.0, which adds type annotations and input/output classes to Python
+* Upgrade to pulumi-terraform-bridge v2.7.2
---
diff --git a/provider/cmd/pulumi-resource-azuread/schema.json b/provider/cmd/pulumi-resource-azuread/schema.json
index 4150ba31b..2fa5ae9d2 100644
--- a/provider/cmd/pulumi-resource-azuread/schema.json
+++ b/provider/cmd/pulumi-resource-azuread/schema.json
@@ -1322,7 +1322,7 @@
},
"resources": {
"azuread:index/application:Application": {
- "description": "Manages an Application within Azure Active Directory.\n\n\u003e **NOTE:** If you're authenticating using a Service Principal then it must have permissions to both `Read and write owned by applications` and `Sign in and read user profile` within the `Windows Azure Active Directory` API.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuread from \"@pulumi/azuread\";\n\nconst example = new azuread.Application(\"example\", {\n appRoles: [{\n allowedMemberTypes: [\n \"User\",\n \"Application\",\n ],\n description: \"Admins can manage roles and perform all task actions\",\n displayName: \"Admin\",\n isEnabled: true,\n value: \"Admin\",\n }],\n availableToOtherTenants: false,\n homepage: \"https://homepage\",\n identifierUris: [\"https://uri\"],\n oauth2AllowImplicitFlow: true,\n oauth2Permissions: [\n {\n adminConsentDescription: \"Allow the application to access example on behalf of the signed-in user.\",\n adminConsentDisplayName: \"Access example\",\n isEnabled: true,\n type: \"User\",\n userConsentDescription: \"Allow the application to access example on your behalf.\",\n userConsentDisplayName: \"Access example\",\n value: \"user_impersonation\",\n },\n {\n adminConsentDescription: \"Administer the example application\",\n adminConsentDisplayName: \"Administer\",\n isEnabled: true,\n type: \"Admin\",\n value: \"administer\",\n },\n ],\n optionalClaims: {\n accessTokens: [\n {\n name: \"myclaim\",\n },\n {\n name: \"otherclaim\",\n },\n ],\n idTokens: [{\n additionalProperties: [\"emit_as_roles\"],\n essential: true,\n name: \"userclaim\",\n source: \"user\",\n }],\n },\n owners: [\"00000004-0000-0000-c000-000000000000\"],\n replyUrls: [\"https://replyurl\"],\n requiredResourceAccesses: [\n {\n resourceAccesses: [\n {\n id: \"...\",\n type: \"Role\",\n },\n {\n id: \"...\",\n type: \"Scope\",\n },\n {\n id: \"...\",\n type: \"Scope\",\n },\n ],\n resourceAppId: \"00000003-0000-0000-c000-000000000000\",\n },\n {\n resourceAccesses: [{\n id: \"...\",\n type: \"Scope\",\n }],\n resourceAppId: \"00000002-0000-0000-c000-000000000000\",\n },\n ],\n type: \"webapp/api\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuread as azuread\n\nexample = azuread.Application(\"example\",\n app_roles=[{\n \"allowedMemberTypes\": [\n \"User\",\n \"Application\",\n ],\n \"description\": \"Admins can manage roles and perform all task actions\",\n \"display_name\": \"Admin\",\n \"isEnabled\": True,\n \"value\": \"Admin\",\n }],\n available_to_other_tenants=False,\n homepage=\"https://homepage\",\n identifier_uris=[\"https://uri\"],\n oauth2_allow_implicit_flow=True,\n oauth2_permissions=[\n {\n \"adminConsentDescription\": \"Allow the application to access example on behalf of the signed-in user.\",\n \"adminConsentDisplayName\": \"Access example\",\n \"isEnabled\": True,\n \"type\": \"User\",\n \"userConsentDescription\": \"Allow the application to access example on your behalf.\",\n \"userConsentDisplayName\": \"Access example\",\n \"value\": \"user_impersonation\",\n },\n {\n \"adminConsentDescription\": \"Administer the example application\",\n \"adminConsentDisplayName\": \"Administer\",\n \"isEnabled\": True,\n \"type\": \"Admin\",\n \"value\": \"administer\",\n },\n ],\n optional_claims={\n \"accessTokens\": [\n {\n \"name\": \"myclaim\",\n },\n {\n \"name\": \"otherclaim\",\n },\n ],\n \"idTokens\": [{\n \"additionalProperties\": [\"emit_as_roles\"],\n \"essential\": True,\n \"name\": \"userclaim\",\n \"source\": \"user\",\n }],\n },\n owners=[\"00000004-0000-0000-c000-000000000000\"],\n reply_urls=[\"https://replyurl\"],\n required_resource_accesses=[\n {\n \"resourceAccesses\": [\n {\n \"id\": \"...\",\n \"type\": \"Role\",\n },\n {\n \"id\": \"...\",\n \"type\": \"Scope\",\n },\n {\n \"id\": \"...\",\n \"type\": \"Scope\",\n },\n ],\n \"resourceAppId\": \"00000003-0000-0000-c000-000000000000\",\n },\n {\n \"resourceAccesses\": [{\n \"id\": \"...\",\n \"type\": \"Scope\",\n }],\n \"resourceAppId\": \"00000002-0000-0000-c000-000000000000\",\n },\n ],\n type=\"webapp/api\")\n```\n```csharp\nusing Pulumi;\nusing AzureAD = Pulumi.AzureAD;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new AzureAD.Application(\"example\", new AzureAD.ApplicationArgs\n {\n AppRoles = \n {\n new AzureAD.Inputs.ApplicationAppRoleArgs\n {\n AllowedMemberTypes = \n {\n \"User\",\n \"Application\",\n },\n Description = \"Admins can manage roles and perform all task actions\",\n DisplayName = \"Admin\",\n IsEnabled = true,\n Value = \"Admin\",\n },\n },\n AvailableToOtherTenants = false,\n Homepage = \"https://homepage\",\n IdentifierUris = \n {\n \"https://uri\",\n },\n Oauth2AllowImplicitFlow = true,\n Oauth2Permissions = \n {\n new AzureAD.Inputs.ApplicationOauth2PermissionArgs\n {\n AdminConsentDescription = \"Allow the application to access example on behalf of the signed-in user.\",\n AdminConsentDisplayName = \"Access example\",\n IsEnabled = true,\n Type = \"User\",\n UserConsentDescription = \"Allow the application to access example on your behalf.\",\n UserConsentDisplayName = \"Access example\",\n Value = \"user_impersonation\",\n },\n new AzureAD.Inputs.ApplicationOauth2PermissionArgs\n {\n AdminConsentDescription = \"Administer the example application\",\n AdminConsentDisplayName = \"Administer\",\n IsEnabled = true,\n Type = \"Admin\",\n Value = \"administer\",\n },\n },\n OptionalClaims = new AzureAD.Inputs.ApplicationOptionalClaimsArgs\n {\n AccessTokens = \n {\n new AzureAD.Inputs.ApplicationOptionalClaimsAccessTokenArgs\n {\n Name = \"myclaim\",\n },\n new AzureAD.Inputs.ApplicationOptionalClaimsAccessTokenArgs\n {\n Name = \"otherclaim\",\n },\n },\n IdTokens = \n {\n new AzureAD.Inputs.ApplicationOptionalClaimsIdTokenArgs\n {\n AdditionalProperties = \n {\n \"emit_as_roles\",\n },\n Essential = true,\n Name = \"userclaim\",\n Source = \"user\",\n },\n },\n },\n Owners = \n {\n \"00000004-0000-0000-c000-000000000000\",\n },\n ReplyUrls = \n {\n \"https://replyurl\",\n },\n RequiredResourceAccesses = \n {\n new AzureAD.Inputs.ApplicationRequiredResourceAccessArgs\n {\n ResourceAccesses = \n {\n new AzureAD.Inputs.ApplicationRequiredResourceAccessResourceAccessArgs\n {\n Id = \"...\",\n Type = \"Role\",\n },\n new AzureAD.Inputs.ApplicationRequiredResourceAccessResourceAccessArgs\n {\n Id = \"...\",\n Type = \"Scope\",\n },\n new AzureAD.Inputs.ApplicationRequiredResourceAccessResourceAccessArgs\n {\n Id = \"...\",\n Type = \"Scope\",\n },\n },\n ResourceAppId = \"00000003-0000-0000-c000-000000000000\",\n },\n new AzureAD.Inputs.ApplicationRequiredResourceAccessArgs\n {\n ResourceAccesses = \n {\n new AzureAD.Inputs.ApplicationRequiredResourceAccessResourceAccessArgs\n {\n Id = \"...\",\n Type = \"Scope\",\n },\n },\n ResourceAppId = \"00000002-0000-0000-c000-000000000000\",\n },\n },\n Type = \"webapp/api\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuread/sdk/v2/go/azuread\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuread.NewApplication(ctx, \"example\", \u0026azuread.ApplicationArgs{\n\t\t\tAppRoles: azuread.ApplicationAppRoleArray{\n\t\t\t\t\u0026azuread.ApplicationAppRoleArgs{\n\t\t\t\t\tAllowedMemberTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"User\"),\n\t\t\t\t\t\tpulumi.String(\"Application\"),\n\t\t\t\t\t},\n\t\t\t\t\tDescription: pulumi.String(\"Admins can manage roles and perform all task actions\"),\n\t\t\t\t\tDisplayName: pulumi.String(\"Admin\"),\n\t\t\t\t\tIsEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue: pulumi.String(\"Admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAvailableToOtherTenants: pulumi.Bool(false),\n\t\t\tHomepage: pulumi.String(\"https://homepage\"),\n\t\t\tIdentifierUris: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://uri\"),\n\t\t\t},\n\t\t\tOauth2AllowImplicitFlow: pulumi.Bool(true),\n\t\t\tOauth2Permissions: azuread.ApplicationOauth2PermissionArray{\n\t\t\t\t\u0026azuread.ApplicationOauth2PermissionArgs{\n\t\t\t\t\tAdminConsentDescription: pulumi.String(\"Allow the application to access example on behalf of the signed-in user.\"),\n\t\t\t\t\tAdminConsentDisplayName: pulumi.String(\"Access example\"),\n\t\t\t\t\tIsEnabled: pulumi.Bool(true),\n\t\t\t\t\tType: pulumi.String(\"User\"),\n\t\t\t\t\tUserConsentDescription: pulumi.String(\"Allow the application to access example on your behalf.\"),\n\t\t\t\t\tUserConsentDisplayName: pulumi.String(\"Access example\"),\n\t\t\t\t\tValue: pulumi.String(\"user_impersonation\"),\n\t\t\t\t},\n\t\t\t\t\u0026azuread.ApplicationOauth2PermissionArgs{\n\t\t\t\t\tAdminConsentDescription: pulumi.String(\"Administer the example application\"),\n\t\t\t\t\tAdminConsentDisplayName: pulumi.String(\"Administer\"),\n\t\t\t\t\tIsEnabled: pulumi.Bool(true),\n\t\t\t\t\tType: pulumi.String(\"Admin\"),\n\t\t\t\t\tValue: pulumi.String(\"administer\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionalClaims: \u0026azuread.ApplicationOptionalClaimsArgs{\n\t\t\t\tAccessTokens: azuread.ApplicationOptionalClaimsAccessTokenArray{\n\t\t\t\t\t\u0026azuread.ApplicationOptionalClaimsAccessTokenArgs{\n\t\t\t\t\t\tName: pulumi.String(\"myclaim\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuread.ApplicationOptionalClaimsAccessTokenArgs{\n\t\t\t\t\t\tName: pulumi.String(\"otherclaim\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tIdTokens: azuread.ApplicationOptionalClaimsIdTokenArray{\n\t\t\t\t\t\u0026azuread.ApplicationOptionalClaimsIdTokenArgs{\n\t\t\t\t\t\tAdditionalProperties: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"emit_as_roles\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tEssential: pulumi.Bool(true),\n\t\t\t\t\t\tName: pulumi.String(\"userclaim\"),\n\t\t\t\t\t\tSource: pulumi.String(\"user\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOwners: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"00000004-0000-0000-c000-000000000000\"),\n\t\t\t},\n\t\t\tReplyUrls: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://replyurl\"),\n\t\t\t},\n\t\t\tRequiredResourceAccesses: azuread.ApplicationRequiredResourceAccessArray{\n\t\t\t\t\u0026azuread.ApplicationRequiredResourceAccessArgs{\n\t\t\t\t\tResourceAccesses: azuread.ApplicationRequiredResourceAccessResourceAccessArray{\n\t\t\t\t\t\t\u0026azuread.ApplicationRequiredResourceAccessResourceAccessArgs{\n\t\t\t\t\t\t\tId: pulumi.String(\"...\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"Role\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026azuread.ApplicationRequiredResourceAccessResourceAccessArgs{\n\t\t\t\t\t\t\tId: pulumi.String(\"...\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"Scope\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026azuread.ApplicationRequiredResourceAccessResourceAccessArgs{\n\t\t\t\t\t\t\tId: pulumi.String(\"...\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"Scope\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tResourceAppId: pulumi.String(\"00000003-0000-0000-c000-000000000000\"),\n\t\t\t\t},\n\t\t\t\t\u0026azuread.ApplicationRequiredResourceAccessArgs{\n\t\t\t\t\tResourceAccesses: azuread.ApplicationRequiredResourceAccessResourceAccessArray{\n\t\t\t\t\t\t\u0026azuread.ApplicationRequiredResourceAccessResourceAccessArgs{\n\t\t\t\t\t\t\tId: pulumi.String(\"...\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"Scope\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tResourceAppId: pulumi.String(\"00000002-0000-0000-c000-000000000000\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tType: pulumi.String(\"webapp/api\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Manages an Application within Azure Active Directory.\n\n\u003e **NOTE:** If you're authenticating using a Service Principal then it must have permissions to both `Read and write owned by applications` and `Sign in and read user profile` within the `Windows Azure Active Directory` API.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuread from \"@pulumi/azuread\";\n\nconst example = new azuread.Application(\"example\", {\n appRoles: [{\n allowedMemberTypes: [\n \"User\",\n \"Application\",\n ],\n description: \"Admins can manage roles and perform all task actions\",\n displayName: \"Admin\",\n isEnabled: true,\n value: \"Admin\",\n }],\n availableToOtherTenants: false,\n homepage: \"https://homepage\",\n identifierUris: [\"https://uri\"],\n oauth2AllowImplicitFlow: true,\n oauth2Permissions: [\n {\n adminConsentDescription: \"Allow the application to access example on behalf of the signed-in user.\",\n adminConsentDisplayName: \"Access example\",\n isEnabled: true,\n type: \"User\",\n userConsentDescription: \"Allow the application to access example on your behalf.\",\n userConsentDisplayName: \"Access example\",\n value: \"user_impersonation\",\n },\n {\n adminConsentDescription: \"Administer the example application\",\n adminConsentDisplayName: \"Administer\",\n isEnabled: true,\n type: \"Admin\",\n value: \"administer\",\n },\n ],\n optionalClaims: {\n accessTokens: [\n {\n name: \"myclaim\",\n },\n {\n name: \"otherclaim\",\n },\n ],\n idTokens: [{\n additionalProperties: [\"emit_as_roles\"],\n essential: true,\n name: \"userclaim\",\n source: \"user\",\n }],\n },\n owners: [\"00000004-0000-0000-c000-000000000000\"],\n replyUrls: [\"https://replyurl\"],\n requiredResourceAccesses: [\n {\n resourceAccesses: [\n {\n id: \"...\",\n type: \"Role\",\n },\n {\n id: \"...\",\n type: \"Scope\",\n },\n {\n id: \"...\",\n type: \"Scope\",\n },\n ],\n resourceAppId: \"00000003-0000-0000-c000-000000000000\",\n },\n {\n resourceAccesses: [{\n id: \"...\",\n type: \"Scope\",\n }],\n resourceAppId: \"00000002-0000-0000-c000-000000000000\",\n },\n ],\n type: \"webapp/api\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuread as azuread\n\nexample = azuread.Application(\"example\",\n app_roles=[azuread.ApplicationAppRoleArgs(\n allowed_member_types=[\n \"User\",\n \"Application\",\n ],\n description=\"Admins can manage roles and perform all task actions\",\n display_name=\"Admin\",\n is_enabled=True,\n value=\"Admin\",\n )],\n available_to_other_tenants=False,\n homepage=\"https://homepage\",\n identifier_uris=[\"https://uri\"],\n oauth2_allow_implicit_flow=True,\n oauth2_permissions=[\n azuread.ApplicationOauth2PermissionArgs(\n admin_consent_description=\"Allow the application to access example on behalf of the signed-in user.\",\n admin_consent_display_name=\"Access example\",\n is_enabled=True,\n type=\"User\",\n user_consent_description=\"Allow the application to access example on your behalf.\",\n user_consent_display_name=\"Access example\",\n value=\"user_impersonation\",\n ),\n azuread.ApplicationOauth2PermissionArgs(\n admin_consent_description=\"Administer the example application\",\n admin_consent_display_name=\"Administer\",\n is_enabled=True,\n type=\"Admin\",\n value=\"administer\",\n ),\n ],\n optional_claims=azuread.ApplicationOptionalClaimsArgs(\n access_tokens=[\n azuread.ApplicationOptionalClaimsAccessTokenArgs(\n name=\"myclaim\",\n ),\n azuread.ApplicationOptionalClaimsAccessTokenArgs(\n name=\"otherclaim\",\n ),\n ],\n id_tokens=[azuread.ApplicationOptionalClaimsIdTokenArgs(\n additional_properties=[\"emit_as_roles\"],\n essential=True,\n name=\"userclaim\",\n source=\"user\",\n )],\n ),\n owners=[\"00000004-0000-0000-c000-000000000000\"],\n reply_urls=[\"https://replyurl\"],\n required_resource_accesses=[\n azuread.ApplicationRequiredResourceAccessArgs(\n resource_accesses=[\n azuread.ApplicationRequiredResourceAccessResourceAccessArgs(\n id=\"...\",\n type=\"Role\",\n ),\n azuread.ApplicationRequiredResourceAccessResourceAccessArgs(\n id=\"...\",\n type=\"Scope\",\n ),\n azuread.ApplicationRequiredResourceAccessResourceAccessArgs(\n id=\"...\",\n type=\"Scope\",\n ),\n ],\n resource_app_id=\"00000003-0000-0000-c000-000000000000\",\n ),\n azuread.ApplicationRequiredResourceAccessArgs(\n resource_accesses=[azuread.ApplicationRequiredResourceAccessResourceAccessArgs(\n id=\"...\",\n type=\"Scope\",\n )],\n resource_app_id=\"00000002-0000-0000-c000-000000000000\",\n ),\n ],\n type=\"webapp/api\")\n```\n```csharp\nusing Pulumi;\nusing AzureAD = Pulumi.AzureAD;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new AzureAD.Application(\"example\", new AzureAD.ApplicationArgs\n {\n AppRoles = \n {\n new AzureAD.Inputs.ApplicationAppRoleArgs\n {\n AllowedMemberTypes = \n {\n \"User\",\n \"Application\",\n },\n Description = \"Admins can manage roles and perform all task actions\",\n DisplayName = \"Admin\",\n IsEnabled = true,\n Value = \"Admin\",\n },\n },\n AvailableToOtherTenants = false,\n Homepage = \"https://homepage\",\n IdentifierUris = \n {\n \"https://uri\",\n },\n Oauth2AllowImplicitFlow = true,\n Oauth2Permissions = \n {\n new AzureAD.Inputs.ApplicationOauth2PermissionArgs\n {\n AdminConsentDescription = \"Allow the application to access example on behalf of the signed-in user.\",\n AdminConsentDisplayName = \"Access example\",\n IsEnabled = true,\n Type = \"User\",\n UserConsentDescription = \"Allow the application to access example on your behalf.\",\n UserConsentDisplayName = \"Access example\",\n Value = \"user_impersonation\",\n },\n new AzureAD.Inputs.ApplicationOauth2PermissionArgs\n {\n AdminConsentDescription = \"Administer the example application\",\n AdminConsentDisplayName = \"Administer\",\n IsEnabled = true,\n Type = \"Admin\",\n Value = \"administer\",\n },\n },\n OptionalClaims = new AzureAD.Inputs.ApplicationOptionalClaimsArgs\n {\n AccessTokens = \n {\n new AzureAD.Inputs.ApplicationOptionalClaimsAccessTokenArgs\n {\n Name = \"myclaim\",\n },\n new AzureAD.Inputs.ApplicationOptionalClaimsAccessTokenArgs\n {\n Name = \"otherclaim\",\n },\n },\n IdTokens = \n {\n new AzureAD.Inputs.ApplicationOptionalClaimsIdTokenArgs\n {\n AdditionalProperties = \n {\n \"emit_as_roles\",\n },\n Essential = true,\n Name = \"userclaim\",\n Source = \"user\",\n },\n },\n },\n Owners = \n {\n \"00000004-0000-0000-c000-000000000000\",\n },\n ReplyUrls = \n {\n \"https://replyurl\",\n },\n RequiredResourceAccesses = \n {\n new AzureAD.Inputs.ApplicationRequiredResourceAccessArgs\n {\n ResourceAccesses = \n {\n new AzureAD.Inputs.ApplicationRequiredResourceAccessResourceAccessArgs\n {\n Id = \"...\",\n Type = \"Role\",\n },\n new AzureAD.Inputs.ApplicationRequiredResourceAccessResourceAccessArgs\n {\n Id = \"...\",\n Type = \"Scope\",\n },\n new AzureAD.Inputs.ApplicationRequiredResourceAccessResourceAccessArgs\n {\n Id = \"...\",\n Type = \"Scope\",\n },\n },\n ResourceAppId = \"00000003-0000-0000-c000-000000000000\",\n },\n new AzureAD.Inputs.ApplicationRequiredResourceAccessArgs\n {\n ResourceAccesses = \n {\n new AzureAD.Inputs.ApplicationRequiredResourceAccessResourceAccessArgs\n {\n Id = \"...\",\n Type = \"Scope\",\n },\n },\n ResourceAppId = \"00000002-0000-0000-c000-000000000000\",\n },\n },\n Type = \"webapp/api\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuread/sdk/v2/go/azuread\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuread.NewApplication(ctx, \"example\", \u0026azuread.ApplicationArgs{\n\t\t\tAppRoles: azuread.ApplicationAppRoleArray{\n\t\t\t\t\u0026azuread.ApplicationAppRoleArgs{\n\t\t\t\t\tAllowedMemberTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"User\"),\n\t\t\t\t\t\tpulumi.String(\"Application\"),\n\t\t\t\t\t},\n\t\t\t\t\tDescription: pulumi.String(\"Admins can manage roles and perform all task actions\"),\n\t\t\t\t\tDisplayName: pulumi.String(\"Admin\"),\n\t\t\t\t\tIsEnabled: pulumi.Bool(true),\n\t\t\t\t\tValue: pulumi.String(\"Admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAvailableToOtherTenants: pulumi.Bool(false),\n\t\t\tHomepage: pulumi.String(\"https://homepage\"),\n\t\t\tIdentifierUris: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://uri\"),\n\t\t\t},\n\t\t\tOauth2AllowImplicitFlow: pulumi.Bool(true),\n\t\t\tOauth2Permissions: azuread.ApplicationOauth2PermissionArray{\n\t\t\t\t\u0026azuread.ApplicationOauth2PermissionArgs{\n\t\t\t\t\tAdminConsentDescription: pulumi.String(\"Allow the application to access example on behalf of the signed-in user.\"),\n\t\t\t\t\tAdminConsentDisplayName: pulumi.String(\"Access example\"),\n\t\t\t\t\tIsEnabled: pulumi.Bool(true),\n\t\t\t\t\tType: pulumi.String(\"User\"),\n\t\t\t\t\tUserConsentDescription: pulumi.String(\"Allow the application to access example on your behalf.\"),\n\t\t\t\t\tUserConsentDisplayName: pulumi.String(\"Access example\"),\n\t\t\t\t\tValue: pulumi.String(\"user_impersonation\"),\n\t\t\t\t},\n\t\t\t\t\u0026azuread.ApplicationOauth2PermissionArgs{\n\t\t\t\t\tAdminConsentDescription: pulumi.String(\"Administer the example application\"),\n\t\t\t\t\tAdminConsentDisplayName: pulumi.String(\"Administer\"),\n\t\t\t\t\tIsEnabled: pulumi.Bool(true),\n\t\t\t\t\tType: pulumi.String(\"Admin\"),\n\t\t\t\t\tValue: pulumi.String(\"administer\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionalClaims: \u0026azuread.ApplicationOptionalClaimsArgs{\n\t\t\t\tAccessTokens: azuread.ApplicationOptionalClaimsAccessTokenArray{\n\t\t\t\t\t\u0026azuread.ApplicationOptionalClaimsAccessTokenArgs{\n\t\t\t\t\t\tName: pulumi.String(\"myclaim\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuread.ApplicationOptionalClaimsAccessTokenArgs{\n\t\t\t\t\t\tName: pulumi.String(\"otherclaim\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tIdTokens: azuread.ApplicationOptionalClaimsIdTokenArray{\n\t\t\t\t\t\u0026azuread.ApplicationOptionalClaimsIdTokenArgs{\n\t\t\t\t\t\tAdditionalProperties: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"emit_as_roles\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tEssential: pulumi.Bool(true),\n\t\t\t\t\t\tName: pulumi.String(\"userclaim\"),\n\t\t\t\t\t\tSource: pulumi.String(\"user\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOwners: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"00000004-0000-0000-c000-000000000000\"),\n\t\t\t},\n\t\t\tReplyUrls: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://replyurl\"),\n\t\t\t},\n\t\t\tRequiredResourceAccesses: azuread.ApplicationRequiredResourceAccessArray{\n\t\t\t\t\u0026azuread.ApplicationRequiredResourceAccessArgs{\n\t\t\t\t\tResourceAccesses: azuread.ApplicationRequiredResourceAccessResourceAccessArray{\n\t\t\t\t\t\t\u0026azuread.ApplicationRequiredResourceAccessResourceAccessArgs{\n\t\t\t\t\t\t\tId: pulumi.String(\"...\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"Role\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026azuread.ApplicationRequiredResourceAccessResourceAccessArgs{\n\t\t\t\t\t\t\tId: pulumi.String(\"...\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"Scope\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026azuread.ApplicationRequiredResourceAccessResourceAccessArgs{\n\t\t\t\t\t\t\tId: pulumi.String(\"...\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"Scope\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tResourceAppId: pulumi.String(\"00000003-0000-0000-c000-000000000000\"),\n\t\t\t\t},\n\t\t\t\t\u0026azuread.ApplicationRequiredResourceAccessArgs{\n\t\t\t\t\tResourceAccesses: azuread.ApplicationRequiredResourceAccessResourceAccessArray{\n\t\t\t\t\t\t\u0026azuread.ApplicationRequiredResourceAccessResourceAccessArgs{\n\t\t\t\t\t\t\tId: pulumi.String(\"...\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"Scope\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tResourceAppId: pulumi.String(\"00000002-0000-0000-c000-000000000000\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tType: pulumi.String(\"webapp/api\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
"properties": {
"appRoles": {
"type": "array",
@@ -3063,8 +3063,9 @@
"python": {
"readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/terraform-providers/terraform-provider-azuread)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi/pulumi-azuread` repo](https://github.com/pulumi/pulumi-azuread/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-providers/terraform-provider-azuread` repo](https://github.com/terraform-providers/terraform-provider-azuread/issues).",
"requires": {
- "pulumi": "\u003e=2.0.0,\u003c3.0.0"
- }
+ "pulumi": "\u003e=2.9.0,\u003c3.0.0"
+ },
+ "usesIOClasses": true
}
}
}
\ No newline at end of file
diff --git a/provider/go.mod b/provider/go.mod
index d4d3094d5..bb9edab39 100644
--- a/provider/go.mod
+++ b/provider/go.mod
@@ -4,8 +4,8 @@ go 1.14
require (
github.com/hashicorp/terraform-plugin-sdk v1.7.0
- github.com/pulumi/pulumi-terraform-bridge/v2 v2.5.2
- github.com/pulumi/pulumi/sdk/v2 v2.5.1-0.20200630091945-bb358c4d2173
+ github.com/pulumi/pulumi-terraform-bridge/v2 v2.7.2
+ github.com/pulumi/pulumi/sdk/v2 v2.9.1-0.20200821035132-629254334213
github.com/terraform-providers/terraform-provider-azuread v0.11.0
)
diff --git a/provider/go.sum b/provider/go.sum
index 95b78d36d..ae98473bc 100644
--- a/provider/go.sum
+++ b/provider/go.sum
@@ -13,22 +13,36 @@ cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6T
cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
cloud.google.com/go v0.53.0 h1:MZQCQQaRwOrAcuKjiHWHrgKykt4fZyuwF2dtiG3fGW8=
cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
+cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
+cloud.google.com/go v0.55.0/go.mod h1:ZHmoY+/lIMNkN2+fBmuTiqZ4inFhvQad8ft7MT8IV5Y=
+cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
+cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
+cloud.google.com/go v0.58.0 h1:vtAfVc723K3xKq1BQydk/FyCldnaNFhGhpJxaJzgRMQ=
+cloud.google.com/go v0.58.0/go.mod h1:W+9FnSUw6nhVwXlFcp1eL+krq5+HQUJeUogSeJZZiWg=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
cloud.google.com/go/bigquery v1.4.0 h1:xE3CPsOgttP4ACBePh79zTKALtXwn/Edhcr16R5hMWU=
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
+cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
+cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
+cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/datastore v1.1.0 h1:/May9ojXjRkPBNVrq+oWLqmWCkr4OU5uRY29bu0mRyQ=
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
+cloud.google.com/go/firestore v1.2.0/go.mod h1:iISCjWnTpnoJT1R287xRdjvQHJrxQOpeah4phb5D3h0=
cloud.google.com/go/logging v1.0.0/go.mod h1:V1cc3ogwobYzQq5f2R7DS/GvRIrI4FKj01Gs5glwAls=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
cloud.google.com/go/pubsub v1.2.0 h1:Lpy6hKgdcl7a3WGSfJIFmxmcdjSpP6OmBEfcOv1Y680=
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
+cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
cloud.google.com/go/storage v1.6.0 h1:UDpwYIwla4jHGzZJaEJYx1tOejbgSoNqsAfHAUYe2r8=
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
+cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
+cloud.google.com/go/storage v1.9.0 h1:oXnZyBjHB6hC8TnSle0AWW6pGJ29EuSo5ww+SFmdNBg=
+cloud.google.com/go/storage v1.9.0/go.mod h1:m+/etGaqZbylxaNT876QGXqEHp4PR2Rq5GMqICWb9bU=
contrib.go.opencensus.io/exporter/aws v0.0.0-20181029163544-2befc13012d0/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA=
contrib.go.opencensus.io/exporter/ocagent v0.5.0/go.mod h1:ImxhfLRpxoYiSq891pBrLVhN+qmP8BTVvdH2YLs7Gl0=
contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw=
@@ -37,14 +51,21 @@ contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcig
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/AlecAivazis/survey/v2 v2.0.5/go.mod h1:WYBhg6f0y/fNYUuesWQc0PKbJcEliGcYHB9sNT3Bg74=
github.com/Azure/azure-amqp-common-go/v2 v2.1.0/go.mod h1:R8rea+gJRuJR6QxTir/XuEd+YuKoUiazDC/N96FiDEU=
+github.com/Azure/azure-amqp-common-go/v3 v3.0.0/go.mod h1:SY08giD/XbhTz07tJdpw1SoxQXHPN30+DI3Z04SYqyg=
github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4=
+github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc=
github.com/Azure/azure-sdk-for-go v29.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
github.com/Azure/azure-sdk-for-go v30.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
github.com/Azure/azure-sdk-for-go v35.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
+github.com/Azure/azure-sdk-for-go v37.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
github.com/Azure/azure-sdk-for-go v42.1.0+incompatible h1:ZNliGuvGKIHedRdz8W9BTMSrxBv9Nzz5BjeobotQTAI=
github.com/Azure/azure-sdk-for-go v42.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
github.com/Azure/azure-service-bus-go v0.9.1/go.mod h1:yzBx6/BUGfjfeqbRZny9AQIbIe3AcV9WZbAdpkoXOa0=
+github.com/Azure/azure-service-bus-go v0.10.1/go.mod h1:E/FOceuKAFUfpbIJDKWz/May6guE+eGibfGT6q+n1to=
github.com/Azure/azure-storage-blob-go v0.8.0/go.mod h1:lPI3aLPpuLTeUwh1sViKXFxwl2B6teiRqI0deQUvsw0=
+github.com/Azure/azure-storage-blob-go v0.9.0/go.mod h1:8UBPbiOhrMQ4pLPi3gA1tXnpjrS76UYE/fo5A40vf4g=
+github.com/Azure/go-amqp v0.12.6/go.mod h1:qApuH6OFTSKZFmCOxccvAv5rLizBQf4v8pRmG138DPo=
+github.com/Azure/go-amqp v0.12.7/go.mod h1:qApuH6OFTSKZFmCOxccvAv5rLizBQf4v8pRmG138DPo=
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
github.com/Azure/go-autorest v12.4.3+incompatible h1:tCkdkgLZqAk+43nZu3wda9n413Q2g+z7xp1wmjiJTPY=
github.com/Azure/go-autorest v12.4.3+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
@@ -59,6 +80,8 @@ github.com/Azure/go-autorest/autorest/adal v0.8.1-0.20191028180845-3492b2aff503/
github.com/Azure/go-autorest/autorest/adal v0.8.1/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
github.com/Azure/go-autorest/autorest/adal v0.8.2 h1:O1X4oexUxnZCaEUGsvMnr8ZGj8HI37tNezwY4npRqA0=
github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
+github.com/Azure/go-autorest/autorest/adal v0.8.3 h1:O1AGG9Xig71FxdX9HO5pGNyZ7TbSyHaVg+5eJO/jSGw=
+github.com/Azure/go-autorest/autorest/adal v0.8.3/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
github.com/Azure/go-autorest/autorest/azure/auth v0.4.2/go.mod h1:90gmfKdlmKgfjUpnCEpOJzsUEjrWDSLwHIG73tSXddM=
github.com/Azure/go-autorest/autorest/azure/cli v0.2.0/go.mod h1:WWTbGPvkAg3I4ms2j2s+Zr5xCGwGqTQh+6M2ZqOczkE=
github.com/Azure/go-autorest/autorest/azure/cli v0.3.1 h1:LXl088ZQlP0SBppGFsRZonW6hSvwgL5gRByMbvUbx8U=
@@ -120,6 +143,8 @@ github.com/aws/aws-sdk-go v1.29.27 h1:4A53lDDGtk4TvnXFzvcOO3Vx3tDqEPfwvChhhxTPN/
github.com/aws/aws-sdk-go v1.29.27/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg=
github.com/aws/aws-sdk-go v1.30.7 h1:IaXfqtioP6p9SFAnNfsqdNczbR5UNbYqvcZUSsCAdTY=
github.com/aws/aws-sdk-go v1.30.7/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
+github.com/aws/aws-sdk-go v1.31.13 h1:UeWMTRTL0XAKLR7vxDL4/u7KOtz/LtfJr+lXtxN4YEQ=
+github.com/aws/aws-sdk-go v1.31.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas=
@@ -149,6 +174,7 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
+github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -215,13 +241,24 @@ github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
github.com/golang/mock v1.4.0 h1:Rd1kQnQu0Hq3qvJppYSG0HtP+f5LPPUiDswTLiEegLg=
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
+github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
+github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
+github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls=
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
+github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
+github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
+github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
+github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
+github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
+github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
+github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
@@ -230,6 +267,8 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.4.1 h1:/exdXoGamhu5ONeUJH0deniYLWYvQwW66yvlfiiKTu0=
+github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
github.com/google/go-replayers/grpcreplay v0.1.0/go.mod h1:8Ig2Idjpr6gifRd6pNVggX6TC1Zw6Jx74AKp7QNH2QE=
github.com/google/go-replayers/httpreplay v0.1.0/go.mod h1:YKZViNhiGgqdBlUbI2MwGpq4pXxNmhJLPHQ7cv2b5no=
@@ -241,11 +280,15 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20200507031123-427632fa3b1c/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/wire v0.3.0/go.mod h1:i1DMg/Lu8Sz5yYl25iOdmc5CT5qusaa+zmRWs16741s=
+github.com/google/wire v0.4.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU=
github.com/googleapis/gax-go v2.0.2+incompatible h1:silFMLAnr330+NRuag/VjIGF7TLp/LBrV2CJKFLWEww=
github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
@@ -363,11 +406,13 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
@@ -380,6 +425,8 @@ github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVc
github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE=
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc=
+github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc=
+github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
@@ -466,6 +513,10 @@ github.com/pulumi/pulumi-terraform-bridge/v2 v2.4.1-0.20200608011815-6feeb51f2d3
github.com/pulumi/pulumi-terraform-bridge/v2 v2.4.1-0.20200608011815-6feeb51f2d39/go.mod h1:GI/1DagEgBD0PJUCt5wmaPLI8cx66IMzLRpy0oeucoo=
github.com/pulumi/pulumi-terraform-bridge/v2 v2.5.2 h1:2fZdQQ1uO1D7J1O8D5ytsaPwze3jsxOlfb0OUxJZpMI=
github.com/pulumi/pulumi-terraform-bridge/v2 v2.5.2/go.mod h1:lxWrXLYAMbse0AJeY570Iy2KYI3uUwNg6JOUZ6U7M+Q=
+github.com/pulumi/pulumi-terraform-bridge/v2 v2.7.1 h1:/nkUi9m0joXkpUy2larPHDBWv8hidP5Ll34V5oextD8=
+github.com/pulumi/pulumi-terraform-bridge/v2 v2.7.1/go.mod h1:kln3KcSDBJBhOLBJXBoZ9pYuXGkJu2GJz4ztorxGoLo=
+github.com/pulumi/pulumi-terraform-bridge/v2 v2.7.2 h1:ZgBUEz1zPN1p8el+YDXoRlOPSPcBz8ytfZH6Ncj/PN4=
+github.com/pulumi/pulumi-terraform-bridge/v2 v2.7.2/go.mod h1:UvbLRW8+YFluKwRZjzP3coPYWQPPYh/q9e2NN2GPbxg=
github.com/pulumi/pulumi/pkg/v2 v2.0.0/go.mod h1:kNG9MBTdKP9AzMgkETumR3fmX9gUYB+HpQL767K6jXc=
github.com/pulumi/pulumi/pkg/v2 v2.2.2-0.20200519081838-f66100ce28b0/go.mod h1:GV88eCIrqfFcBWd5QUdN3qMsR0h+x+iRIBnBhhvB78A=
github.com/pulumi/pulumi/pkg/v2 v2.3.1-0.20200607162109-9754465b04db h1:5HrO1GNA53QEp+yN1UCX7BUsJD2I5/k1u2KLO4hOxOA=
@@ -473,6 +524,10 @@ github.com/pulumi/pulumi/pkg/v2 v2.3.1-0.20200607162109-9754465b04db/go.mod h1:a
github.com/pulumi/pulumi/pkg/v2 v2.3.1-0.20200610172153-45a901d3e77c/go.mod h1:aqo0wBboEEdy+T5EYKUB6YnzbL80VPjgJPwjttuHqT0=
github.com/pulumi/pulumi/pkg/v2 v2.5.1-0.20200630091945-bb358c4d2173 h1:7nc8B91aEP2MTlty6MMzVLS/IGyX12k/UJ9loeCHcqE=
github.com/pulumi/pulumi/pkg/v2 v2.5.1-0.20200630091945-bb358c4d2173/go.mod h1:zfUm4/GH2dVRlHZ3Yeb9bRweCQM7icVBdplu6MUDRrQ=
+github.com/pulumi/pulumi/pkg/v2 v2.9.0 h1:rw1VHYxcfxoLsQzCFDWwb1YKdQ8bKe60fNnyoOSAAyk=
+github.com/pulumi/pulumi/pkg/v2 v2.9.0/go.mod h1:Yq1q3nwy/KeU08DyyX0QsMyc6SqPs0jGJb8ev5f45AU=
+github.com/pulumi/pulumi/pkg/v2 v2.9.1-0.20200821035132-629254334213 h1:c8UQ842Zg6XzX4sPeGhBo8hiGFzoU23vaMmxk64V8eU=
+github.com/pulumi/pulumi/pkg/v2 v2.9.1-0.20200821035132-629254334213/go.mod h1:Yq1q3nwy/KeU08DyyX0QsMyc6SqPs0jGJb8ev5f45AU=
github.com/pulumi/pulumi/sdk/v2 v2.0.0 h1:3VMXbEo3bqeaU+YDt8ufVBLD0WhLYE3tG3t/nIZ3Iac=
github.com/pulumi/pulumi/sdk/v2 v2.0.0/go.mod h1:W7k1UDYerc5o97mHnlHHp5iQZKEby+oQrQefWt+2RF4=
github.com/pulumi/pulumi/sdk/v2 v2.2.2-0.20200519081838-f66100ce28b0/go.mod h1:QNbWpL4gvf3X0lUFT7TXA2Jo1ff/Ti2l97AyFGYwvW4=
@@ -482,12 +537,18 @@ github.com/pulumi/pulumi/sdk/v2 v2.3.1-0.20200610172153-45a901d3e77c/go.mod h1:l
github.com/pulumi/pulumi/sdk/v2 v2.5.0/go.mod h1:llk6tmXss8kJrt3vEXAkwiwgZOuINEFmKIfMveVIwO8=
github.com/pulumi/pulumi/sdk/v2 v2.5.1-0.20200630091945-bb358c4d2173 h1:tKAYUvIWlr6PTeC7OHL2aEMW92x+XqEPsy+NwOcY4R4=
github.com/pulumi/pulumi/sdk/v2 v2.5.1-0.20200630091945-bb358c4d2173/go.mod h1:llk6tmXss8kJrt3vEXAkwiwgZOuINEFmKIfMveVIwO8=
+github.com/pulumi/pulumi/sdk/v2 v2.9.0 h1:wF1AWUjiS4UwizKYxjWPPuyZIdk2WdBWLj2X/DrYEjo=
+github.com/pulumi/pulumi/sdk/v2 v2.9.0/go.mod h1:x84WPiFiuE+G4kJ5jUYkOxmnQJlWoJaHNeEYdqnCKA4=
+github.com/pulumi/pulumi/sdk/v2 v2.9.1-0.20200821035132-629254334213 h1:h4hBtS6/S0a1deLtJuUuYAIZGOCIJY9OVSdmC4VRk+M=
+github.com/pulumi/pulumi/sdk/v2 v2.9.1-0.20200821035132-629254334213/go.mod h1:x84WPiFiuE+G4kJ5jUYkOxmnQJlWoJaHNeEYdqnCKA4=
github.com/pulumi/tf2pulumi v0.8.1-0.20200519092335-cb56a4dfa88d h1:1JtzB9Gx0YX2UgKKkqJwTgBXxfg2cbLUEqTJKwKBK7s=
github.com/pulumi/tf2pulumi v0.8.1-0.20200519092335-cb56a4dfa88d/go.mod h1:yv9XozKsue9ZELHQbrBGgIaFtE3OX3Q4m7koTzTqgpE=
github.com/pulumi/tf2pulumi v0.8.1-0.20200528170746-c1234defe2b5 h1:h+pUwgEser1Ole6TMCc66njRPcw7SEVXpeoClG+ihEM=
github.com/pulumi/tf2pulumi v0.8.1-0.20200528170746-c1234defe2b5/go.mod h1:WuOTC7l/5TV0+/v8Djbgz/zPxqwiCYCxf9zoffDFGuM=
github.com/pulumi/tf2pulumi v0.8.1-0.20200630203740-1846524be4ec h1:C0l29EHsfhH+reeRSmqr0sIzJipQpXssof3YZurRrVo=
github.com/pulumi/tf2pulumi v0.8.1-0.20200630203740-1846524be4ec/go.mod h1:lE39suxXfTqjNHg8PxtPUdek3wnTTdnoYXVpQdFGmEo=
+github.com/pulumi/tf2pulumi v0.8.1-0.20200701212620-1e7538fb9a34 h1:u1NyO0NXvl+b6kXq2iuQgU95U3O1muXMZLEglS/k+zM=
+github.com/pulumi/tf2pulumi v0.8.1-0.20200701212620-1e7538fb9a34/go.mod h1:lE39suxXfTqjNHg8PxtPUdek3wnTTdnoYXVpQdFGmEo=
github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
@@ -546,6 +607,8 @@ github.com/terraform-providers/terraform-provider-http v1.2.0/go.mod h1:2Iot921O
github.com/texttheater/golang-levenshtein v0.0.0-20191208221605-eb6844b05fc6 h1:9VTskZOIRf2vKF3UL8TuWElry5pgUpV1tFSe/e/0m/E=
github.com/texttheater/golang-levenshtein v0.0.0-20191208221605-eb6844b05fc6/go.mod h1:XDKHRm5ThF8YJjx001LtgelzsoaEcvnA7lVWz9EeX3g=
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
+github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68=
+github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7/go.mod h1:UxoP3EypF8JfGEjAII8jx1q8rQyDnX8qdTCs/UQBVIE=
github.com/uber/jaeger-client-go v2.22.1+incompatible h1:NHcubEkVbahf9t3p75TOCR83gdUHXjRJvjoBh1yACsM=
github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw=
@@ -563,6 +626,8 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
+github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s=
github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s=
github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8=
@@ -586,8 +651,10 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
gocloud.dev v0.19.0/go.mod h1:SmKwiR8YwIMMJvQBKLsC3fHNyMwXLw3PMDO+VVteJMI=
gocloud.dev v0.19.1-0.20200517170643-46480dc2c3dd/go.mod h1:fvG7ZAkwaV3B1N49m64LkHoO/1bhgGBYyuK1egT06I4=
+gocloud.dev v0.20.0/go.mod h1:+Y/RpSXrJthIOM8uFNzWp6MRu9pFPNFEEZrQMxpkfIc=
gocloud.dev/secrets/hashivault v0.19.0/go.mod h1:doHlds85r+VwAs0T46bhjLwboWUfgfo3ovqDA8azNWo=
gocloud.dev/secrets/hashivault v0.19.1-0.20200517170643-46480dc2c3dd/go.mod h1:Us/bsVAl9RPzZR+OXgyY2LyIfyugQoNKJm+7VRZfOi0=
+gocloud.dev/secrets/hashivault v0.20.0/go.mod h1:2nNlZ76i4JlT9qrPVKbINB01L8BGgv4wmq2Cqyz22dA=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -624,6 +691,7 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
golang.org/x/lint v0.0.0-20200130185559-910be7a94367 h1:0IiAsCRByjO2QjX7ZPkw5oU9x+n1YqRL802rjC0c3Aw=
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
@@ -632,6 +700,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -652,12 +722,21 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191009170851-d66e71096ffb/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200602114024-627f9648deb9 h1:pNX+40auqi2JqRfOP1akLGtYcn15TUbkhwuCO3foqqM=
+golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -698,6 +777,7 @@ golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -707,8 +787,17 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200317113312-5766fd39f98d h1:62ap6LNOjDU6uGmKXHJbSfciMoV+FeI1sRXx/pLDL44=
golang.org/x/sys v0.0.0-20200317113312-5766fd39f98d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980 h1:OjiUf46hAmXblsZdnoSXsEUSKU8r1UEzcL5RVZ4gO9Y=
+golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -753,6 +842,18 @@ golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapK
golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200224181240-023911ca70b2 h1:L/G4KZvrQn7FWLN/LlulBtBzrLUhqjiGfTWWDmrh+IQ=
golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
+golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
+golang.org/x/tools v0.0.0-20200317043434-63da46f3035e/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
+golang.org/x/tools v0.0.0-20200325010219-a49f79bcc224/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
+golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
+golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200601175630-2caf76543d99/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200606014950-c42cb6316fb6/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200608174601-1b747fd94509/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
@@ -768,14 +869,20 @@ google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsb
google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/api v0.20.0 h1:jz2KixHX7EcCPiQrySzPdnYT7DbINAypCqKZ1Z7GM40=
google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
+google.golang.org/api v0.26.0 h1:VJZ8h6E8ip82FRpQl848c5vAadxlTXrUh8RzQzSRm08=
+google.golang.org/api v0.26.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM=
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
@@ -799,8 +906,21 @@ google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvx
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200317114155-1f3552e48f24/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200318110522-7735f76e9fa5 h1:Bs8aCQBqwnuSvG/tB3ip/W8JLeuQt1+1ppSHYi4n9RM=
google.golang.org/genproto v0.0.0-20200318110522-7735f76e9fa5/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200325114520-5b2d0af7952b/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
+google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
+google.golang.org/genproto v0.0.0-20200603110839-e855014d5736/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
+google.golang.org/genproto v0.0.0-20200608115520-7c474a2e3482 h1:i+Aiej6cta/Frzp13/swvwz5O00kYcSe0A/C5Wd7zX8=
+google.golang.org/genproto v0.0.0-20200608115520-7c474a2e3482/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
@@ -814,6 +934,18 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.28.0 h1:bO/TA4OxCOummhSf10siHuG7vJOiwh7SpRpFZDkOgl4=
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
+google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4=
+google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
+google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
+google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA=
+google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
gopkg.in/AlecAivazis/survey.v1 v1.8.8/go.mod h1:CaHjv79TCgAvXMSFJSVgonHXYWxnhzI3eoHtnX5UgUo=
gopkg.in/AlecAivazis/survey.v1 v1.8.9-0.20200217094205-6773bdf39b7f/go.mod h1:CaHjv79TCgAvXMSFJSVgonHXYWxnhzI3eoHtnX5UgUo=
gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
@@ -854,6 +986,7 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
honnef.co/go/tools v0.0.1-2020.1.3 h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3U=
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
+honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0=
pack.ag/amqp v0.11.2/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
diff --git a/provider/resources.go b/provider/resources.go
index 3d7269b05..bd4aafc62 100644
--- a/provider/resources.go
+++ b/provider/resources.go
@@ -172,10 +172,10 @@ func Provider() tfbridge.ProviderInfo {
},
},
Python: &tfbridge.PythonInfo{
- // List any Python dependencies and their version ranges
Requires: map[string]string{
- "pulumi": ">=2.0.0,<3.0.0",
+ "pulumi": ">=2.9.0,<3.0.0",
},
+ UsesIOClasses: true,
},
CSharp: &tfbridge.CSharpInfo{
PackageReferences: map[string]string{
diff --git a/sdk/dotnet/Pulumi.AzureAD.csproj b/sdk/dotnet/Pulumi.AzureAD.csproj
index f5978b8c1..2b87027bc 100644
--- a/sdk/dotnet/Pulumi.AzureAD.csproj
+++ b/sdk/dotnet/Pulumi.AzureAD.csproj
@@ -19,6 +19,16 @@
1701;1702;1591
+
+ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
+ true
+ true
+
+
+
+
+
+
diff --git a/sdk/nodejs/README.md b/sdk/nodejs/README.md
index c62a2a206..5fcadbb0a 100644
--- a/sdk/nodejs/README.md
+++ b/sdk/nodejs/README.md
@@ -1,18 +1,3 @@
-The Microsoft Azure Active Directory (Azure AD) provider package offers support for all Azure AD services and their properties.
-Services are exposed as types such as `Application`, `Group`, and `User`, among many others. Using this
-package allows you to programmatically declare instances of any Azure AD services using infrastructure as code, which
-Pulumi then uses to drive the Azure REST API.
-
-This package is typically used in conjunction with the [Pulumi Azure provider](https://www.pulumi.com/docs/reference/pkg/nodejs/pulumi/azure/).
-
-If this is your first time using this package, these two resources may be helpful:
-
-* [Azure Getting Started Guide](https://www.pulumi.com/docs/quickstart/azure): Get up and running quickly.
-* [Azure Pulumi Setup Documentation](https://www.pulumi.com/docs/quickstart/azure/configure/): How to configure Pulumi
- for use with your Azure account.
-
-Use the navigation below to see detailed documentation, including sample code, for each of the supported Azure services.
-
> This provider is a derived work of the [Terraform Provider](https://github.com/terraform-providers/terraform-provider-azuread)
> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,
> first check the [`pulumi/pulumi-azuread` repo](https://github.com/pulumi/pulumi-azuread/issues); however, if that doesn't turn up anything,
diff --git a/sdk/nodejs/config/vars.ts b/sdk/nodejs/config/vars.ts
index c550c870e..3842a5534 100644
--- a/sdk/nodejs/config/vars.ts
+++ b/sdk/nodejs/config/vars.ts
@@ -2,8 +2,6 @@
// *** Do not edit by hand unless you're certain you know what you are doing! ***
import * as pulumi from "@pulumi/pulumi";
-import * as inputs from "../types/input";
-import * as outputs from "../types/output";
import * as utilities from "../utilities";
let __config = new pulumi.Config("azuread");
diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts
index 76dec2418..372cb3b33 100644
--- a/sdk/nodejs/provider.ts
+++ b/sdk/nodejs/provider.ts
@@ -35,15 +35,17 @@ export class Provider extends pulumi.ProviderResource {
*/
constructor(name: string, args?: ProviderArgs, opts?: pulumi.ResourceOptions) {
let inputs: pulumi.Inputs = {};
- inputs["clientCertificatePassword"] = (args ? args.clientCertificatePassword : undefined) || (utilities.getEnv("ARM_CLIENT_CERTIFICATE_PASSWORD") || "");
- inputs["clientCertificatePath"] = (args ? args.clientCertificatePath : undefined) || (utilities.getEnv("ARM_CLIENT_CERTIFICATE_PATH") || "");
- inputs["clientId"] = (args ? args.clientId : undefined) || (utilities.getEnv("ARM_CLIENT_ID") || "");
- inputs["clientSecret"] = (args ? args.clientSecret : undefined) || (utilities.getEnv("ARM_CLIENT_SECRET") || "");
- inputs["environment"] = (args ? args.environment : undefined) || (utilities.getEnv("ARM_ENVIRONMENT") || "public");
- inputs["msiEndpoint"] = (args ? args.msiEndpoint : undefined) || (utilities.getEnv("ARM_MSI_ENDPOINT") || "");
- inputs["subscriptionId"] = (args ? args.subscriptionId : undefined) || (utilities.getEnv("ARM_SUBSCRIPTION_ID") || "");
- inputs["tenantId"] = (args ? args.tenantId : undefined) || (utilities.getEnv("ARM_TENANT_ID") || "");
- inputs["useMsi"] = pulumi.output((args ? args.useMsi : undefined) || (utilities.getEnvBoolean("ARM_USE_MSI") || false)).apply(JSON.stringify);
+ {
+ inputs["clientCertificatePassword"] = (args ? args.clientCertificatePassword : undefined) || (utilities.getEnv("ARM_CLIENT_CERTIFICATE_PASSWORD") || "");
+ inputs["clientCertificatePath"] = (args ? args.clientCertificatePath : undefined) || (utilities.getEnv("ARM_CLIENT_CERTIFICATE_PATH") || "");
+ inputs["clientId"] = (args ? args.clientId : undefined) || (utilities.getEnv("ARM_CLIENT_ID") || "");
+ inputs["clientSecret"] = (args ? args.clientSecret : undefined) || (utilities.getEnv("ARM_CLIENT_SECRET") || "");
+ inputs["environment"] = (args ? args.environment : undefined) || (utilities.getEnv("ARM_ENVIRONMENT") || "public");
+ inputs["msiEndpoint"] = (args ? args.msiEndpoint : undefined) || (utilities.getEnv("ARM_MSI_ENDPOINT") || "");
+ inputs["subscriptionId"] = (args ? args.subscriptionId : undefined) || (utilities.getEnv("ARM_SUBSCRIPTION_ID") || "");
+ inputs["tenantId"] = (args ? args.tenantId : undefined) || (utilities.getEnv("ARM_TENANT_ID") || "");
+ inputs["useMsi"] = pulumi.output((args ? args.useMsi : undefined) || (utilities.getEnvBoolean("ARM_USE_MSI") || false)).apply(JSON.stringify);
+ }
if (!opts) {
opts = {}
}
diff --git a/sdk/python/pulumi_azuread/__init__.py b/sdk/python/pulumi_azuread/__init__.py
index bcf2598d4..49fa764a9 100644
--- a/sdk/python/pulumi_azuread/__init__.py
+++ b/sdk/python/pulumi_azuread/__init__.py
@@ -21,3 +21,10 @@
from .service_principal_certificate import *
from .service_principal_password import *
from .user import *
+from ._inputs import *
+from . import outputs
+
+# Make subpackages available:
+from . import (
+ config,
+)
diff --git a/sdk/python/pulumi_azuread/_inputs.py b/sdk/python/pulumi_azuread/_inputs.py
new file mode 100644
index 000000000..8e39885fa
--- /dev/null
+++ b/sdk/python/pulumi_azuread/_inputs.py
@@ -0,0 +1,1062 @@
+# 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 warnings
+import pulumi
+import pulumi.runtime
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+
+__all__ = [
+ 'ApplicationAppRoleArgs',
+ 'ApplicationOauth2PermissionArgs',
+ 'ApplicationOptionalClaimsArgs',
+ 'ApplicationOptionalClaimsAccessTokenArgs',
+ 'ApplicationOptionalClaimsIdTokenArgs',
+ 'ApplicationRequiredResourceAccessArgs',
+ 'ApplicationRequiredResourceAccessResourceAccessArgs',
+ 'ServicePrincipalOauth2PermissionArgs',
+ 'GetApplicationOauth2PermissionArgs',
+ 'GetApplicationOptionalClaimsArgs',
+ 'GetApplicationOptionalClaimsAccessTokenArgs',
+ 'GetApplicationOptionalClaimsIdTokenArgs',
+ 'GetServicePrincipalOauth2PermissionArgs',
+]
+
+@pulumi.input_type
+class ApplicationAppRoleArgs:
+ def __init__(__self__, *,
+ allowed_member_types: pulumi.Input[List[pulumi.Input[str]]],
+ description: pulumi.Input[str],
+ display_name: pulumi.Input[str],
+ id: Optional[pulumi.Input[str]] = None,
+ is_enabled: Optional[pulumi.Input[bool]] = None,
+ value: Optional[pulumi.Input[str]] = None):
+ """
+ :param pulumi.Input[List[pulumi.Input[str]]] allowed_member_types: Specifies whether this app role definition can be assigned to users and groups by setting to `User`, or to other applications (that are accessing this application in daemon service scenarios) by setting to `Application`, or to both.
+ :param pulumi.Input[str] description: Permission help text that appears in the admin app assignment and consent experiences.
+ :param pulumi.Input[str] display_name: Display name for the permission that appears in the admin consent and app assignment experiences.
+ :param pulumi.Input[str] id: The unique identifier of the `app_role`.
+ :param pulumi.Input[bool] is_enabled: Determines if the permission is enabled: defaults to `true`.
+ :param pulumi.Input[str] value: The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
+ """
+ pulumi.set(__self__, "allowed_member_types", allowed_member_types)
+ pulumi.set(__self__, "description", description)
+ pulumi.set(__self__, "display_name", display_name)
+ if id is not None:
+ pulumi.set(__self__, "id", id)
+ if is_enabled is not None:
+ pulumi.set(__self__, "is_enabled", is_enabled)
+ if value is not None:
+ pulumi.set(__self__, "value", value)
+
+ @property
+ @pulumi.getter(name="allowedMemberTypes")
+ def allowed_member_types(self) -> pulumi.Input[List[pulumi.Input[str]]]:
+ """
+ Specifies whether this app role definition can be assigned to users and groups by setting to `User`, or to other applications (that are accessing this application in daemon service scenarios) by setting to `Application`, or to both.
+ """
+ return pulumi.get(self, "allowed_member_types")
+
+ @allowed_member_types.setter
+ def allowed_member_types(self, value: pulumi.Input[List[pulumi.Input[str]]]):
+ pulumi.set(self, "allowed_member_types", value)
+
+ @property
+ @pulumi.getter
+ def description(self) -> pulumi.Input[str]:
+ """
+ Permission help text that appears in the admin app assignment and consent experiences.
+ """
+ return pulumi.get(self, "description")
+
+ @description.setter
+ def description(self, value: pulumi.Input[str]):
+ pulumi.set(self, "description", value)
+
+ @property
+ @pulumi.getter(name="displayName")
+ def display_name(self) -> pulumi.Input[str]:
+ """
+ Display name for the permission that appears in the admin consent and app assignment experiences.
+ """
+ return pulumi.get(self, "display_name")
+
+ @display_name.setter
+ def display_name(self, value: pulumi.Input[str]):
+ pulumi.set(self, "display_name", value)
+
+ @property
+ @pulumi.getter
+ def id(self) -> Optional[pulumi.Input[str]]:
+ """
+ The unique identifier of the `app_role`.
+ """
+ return pulumi.get(self, "id")
+
+ @id.setter
+ def id(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "id", value)
+
+ @property
+ @pulumi.getter(name="isEnabled")
+ def is_enabled(self) -> Optional[pulumi.Input[bool]]:
+ """
+ Determines if the permission is enabled: defaults to `true`.
+ """
+ return pulumi.get(self, "is_enabled")
+
+ @is_enabled.setter
+ def is_enabled(self, value: Optional[pulumi.Input[bool]]):
+ pulumi.set(self, "is_enabled", value)
+
+ @property
+ @pulumi.getter
+ def value(self) -> Optional[pulumi.Input[str]]:
+ """
+ The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
+ """
+ return pulumi.get(self, "value")
+
+ @value.setter
+ def value(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "value", value)
+
+
+@pulumi.input_type
+class ApplicationOauth2PermissionArgs:
+ def __init__(__self__, *,
+ admin_consent_description: Optional[pulumi.Input[str]] = None,
+ admin_consent_display_name: Optional[pulumi.Input[str]] = None,
+ id: Optional[pulumi.Input[str]] = None,
+ is_enabled: Optional[pulumi.Input[bool]] = None,
+ type: Optional[pulumi.Input[str]] = None,
+ user_consent_description: Optional[pulumi.Input[str]] = None,
+ user_consent_display_name: Optional[pulumi.Input[str]] = None,
+ value: Optional[pulumi.Input[str]] = None):
+ """
+ :param pulumi.Input[str] admin_consent_description: Permission help text that appears in the admin consent and app assignment experiences.
+ :param pulumi.Input[str] admin_consent_display_name: Display name for the permission that appears in the admin consent and app assignment experiences.
+ :param pulumi.Input[str] id: The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
+ :param pulumi.Input[bool] is_enabled: Determines if the app role is enabled: Defaults to `true`.
+ :param pulumi.Input[str] type: Type of an application: `webapp/api` or `native`. Defaults to `webapp/api`. For `native` apps type `identifier_uris` property can not not be set.
+ :param pulumi.Input[str] user_consent_description: Permission help text that appears in the end user consent experience.
+ :param pulumi.Input[str] user_consent_display_name: Display name for the permission that appears in the end user consent experience.
+ :param pulumi.Input[str] value: Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ if admin_consent_description is not None:
+ pulumi.set(__self__, "admin_consent_description", admin_consent_description)
+ if admin_consent_display_name is not None:
+ pulumi.set(__self__, "admin_consent_display_name", admin_consent_display_name)
+ if id is not None:
+ pulumi.set(__self__, "id", id)
+ if is_enabled is not None:
+ pulumi.set(__self__, "is_enabled", is_enabled)
+ if type is not None:
+ pulumi.set(__self__, "type", type)
+ if user_consent_description is not None:
+ pulumi.set(__self__, "user_consent_description", user_consent_description)
+ if user_consent_display_name is not None:
+ pulumi.set(__self__, "user_consent_display_name", user_consent_display_name)
+ if value is not None:
+ pulumi.set(__self__, "value", value)
+
+ @property
+ @pulumi.getter(name="adminConsentDescription")
+ def admin_consent_description(self) -> Optional[pulumi.Input[str]]:
+ """
+ Permission help text that appears in the admin consent and app assignment experiences.
+ """
+ return pulumi.get(self, "admin_consent_description")
+
+ @admin_consent_description.setter
+ def admin_consent_description(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "admin_consent_description", value)
+
+ @property
+ @pulumi.getter(name="adminConsentDisplayName")
+ def admin_consent_display_name(self) -> Optional[pulumi.Input[str]]:
+ """
+ Display name for the permission that appears in the admin consent and app assignment experiences.
+ """
+ return pulumi.get(self, "admin_consent_display_name")
+
+ @admin_consent_display_name.setter
+ def admin_consent_display_name(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "admin_consent_display_name", value)
+
+ @property
+ @pulumi.getter
+ def id(self) -> Optional[pulumi.Input[str]]:
+ """
+ The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
+ """
+ return pulumi.get(self, "id")
+
+ @id.setter
+ def id(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "id", value)
+
+ @property
+ @pulumi.getter(name="isEnabled")
+ def is_enabled(self) -> Optional[pulumi.Input[bool]]:
+ """
+ Determines if the app role is enabled: Defaults to `true`.
+ """
+ return pulumi.get(self, "is_enabled")
+
+ @is_enabled.setter
+ def is_enabled(self, value: Optional[pulumi.Input[bool]]):
+ pulumi.set(self, "is_enabled", value)
+
+ @property
+ @pulumi.getter
+ def type(self) -> Optional[pulumi.Input[str]]:
+ """
+ Type of an application: `webapp/api` or `native`. Defaults to `webapp/api`. For `native` apps type `identifier_uris` property can not not be set.
+ """
+ return pulumi.get(self, "type")
+
+ @type.setter
+ def type(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "type", value)
+
+ @property
+ @pulumi.getter(name="userConsentDescription")
+ def user_consent_description(self) -> Optional[pulumi.Input[str]]:
+ """
+ Permission help text that appears in the end user consent experience.
+ """
+ return pulumi.get(self, "user_consent_description")
+
+ @user_consent_description.setter
+ def user_consent_description(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "user_consent_description", value)
+
+ @property
+ @pulumi.getter(name="userConsentDisplayName")
+ def user_consent_display_name(self) -> Optional[pulumi.Input[str]]:
+ """
+ Display name for the permission that appears in the end user consent experience.
+ """
+ return pulumi.get(self, "user_consent_display_name")
+
+ @user_consent_display_name.setter
+ def user_consent_display_name(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "user_consent_display_name", value)
+
+ @property
+ @pulumi.getter
+ def value(self) -> Optional[pulumi.Input[str]]:
+ """
+ Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ return pulumi.get(self, "value")
+
+ @value.setter
+ def value(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "value", value)
+
+
+@pulumi.input_type
+class ApplicationOptionalClaimsArgs:
+ def __init__(__self__, *,
+ access_tokens: Optional[pulumi.Input[List[pulumi.Input['ApplicationOptionalClaimsAccessTokenArgs']]]] = None,
+ id_tokens: Optional[pulumi.Input[List[pulumi.Input['ApplicationOptionalClaimsIdTokenArgs']]]] = None):
+ if access_tokens is not None:
+ pulumi.set(__self__, "access_tokens", access_tokens)
+ if id_tokens is not None:
+ pulumi.set(__self__, "id_tokens", id_tokens)
+
+ @property
+ @pulumi.getter(name="accessTokens")
+ def access_tokens(self) -> Optional[pulumi.Input[List[pulumi.Input['ApplicationOptionalClaimsAccessTokenArgs']]]]:
+ return pulumi.get(self, "access_tokens")
+
+ @access_tokens.setter
+ def access_tokens(self, value: Optional[pulumi.Input[List[pulumi.Input['ApplicationOptionalClaimsAccessTokenArgs']]]]):
+ pulumi.set(self, "access_tokens", value)
+
+ @property
+ @pulumi.getter(name="idTokens")
+ def id_tokens(self) -> Optional[pulumi.Input[List[pulumi.Input['ApplicationOptionalClaimsIdTokenArgs']]]]:
+ return pulumi.get(self, "id_tokens")
+
+ @id_tokens.setter
+ def id_tokens(self, value: Optional[pulumi.Input[List[pulumi.Input['ApplicationOptionalClaimsIdTokenArgs']]]]):
+ pulumi.set(self, "id_tokens", value)
+
+
+@pulumi.input_type
+class ApplicationOptionalClaimsAccessTokenArgs:
+ def __init__(__self__, *,
+ name: pulumi.Input[str],
+ additional_properties: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ essential: Optional[pulumi.Input[bool]] = None,
+ source: Optional[pulumi.Input[str]] = None):
+ """
+ :param pulumi.Input[str] name: The name of the optional claim.
+ :param pulumi.Input[List[pulumi.Input[str]]] additional_properties: List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ :param pulumi.Input[bool] essential: Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ :param pulumi.Input[str] source: The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ pulumi.set(__self__, "name", name)
+ if additional_properties is not None:
+ pulumi.set(__self__, "additional_properties", additional_properties)
+ if essential is not None:
+ pulumi.set(__self__, "essential", essential)
+ if source is not None:
+ pulumi.set(__self__, "source", source)
+
+ @property
+ @pulumi.getter
+ def name(self) -> pulumi.Input[str]:
+ """
+ The name of the optional claim.
+ """
+ return pulumi.get(self, "name")
+
+ @name.setter
+ def name(self, value: pulumi.Input[str]):
+ pulumi.set(self, "name", value)
+
+ @property
+ @pulumi.getter(name="additionalProperties")
+ def additional_properties(self) -> Optional[pulumi.Input[List[pulumi.Input[str]]]]:
+ """
+ List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ """
+ return pulumi.get(self, "additional_properties")
+
+ @additional_properties.setter
+ def additional_properties(self, value: Optional[pulumi.Input[List[pulumi.Input[str]]]]):
+ pulumi.set(self, "additional_properties", value)
+
+ @property
+ @pulumi.getter
+ def essential(self) -> Optional[pulumi.Input[bool]]:
+ """
+ Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ """
+ return pulumi.get(self, "essential")
+
+ @essential.setter
+ def essential(self, value: Optional[pulumi.Input[bool]]):
+ pulumi.set(self, "essential", value)
+
+ @property
+ @pulumi.getter
+ def source(self) -> Optional[pulumi.Input[str]]:
+ """
+ The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ return pulumi.get(self, "source")
+
+ @source.setter
+ def source(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "source", value)
+
+
+@pulumi.input_type
+class ApplicationOptionalClaimsIdTokenArgs:
+ def __init__(__self__, *,
+ name: pulumi.Input[str],
+ additional_properties: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ essential: Optional[pulumi.Input[bool]] = None,
+ source: Optional[pulumi.Input[str]] = None):
+ """
+ :param pulumi.Input[str] name: The display name for the application.
+ :param pulumi.Input[List[pulumi.Input[str]]] additional_properties: List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ :param pulumi.Input[bool] essential: Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ :param pulumi.Input[str] source: The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ pulumi.set(__self__, "name", name)
+ if additional_properties is not None:
+ pulumi.set(__self__, "additional_properties", additional_properties)
+ if essential is not None:
+ pulumi.set(__self__, "essential", essential)
+ if source is not None:
+ pulumi.set(__self__, "source", source)
+
+ @property
+ @pulumi.getter
+ def name(self) -> pulumi.Input[str]:
+ """
+ The display name for the application.
+ """
+ return pulumi.get(self, "name")
+
+ @name.setter
+ def name(self, value: pulumi.Input[str]):
+ pulumi.set(self, "name", value)
+
+ @property
+ @pulumi.getter(name="additionalProperties")
+ def additional_properties(self) -> Optional[pulumi.Input[List[pulumi.Input[str]]]]:
+ """
+ List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ """
+ return pulumi.get(self, "additional_properties")
+
+ @additional_properties.setter
+ def additional_properties(self, value: Optional[pulumi.Input[List[pulumi.Input[str]]]]):
+ pulumi.set(self, "additional_properties", value)
+
+ @property
+ @pulumi.getter
+ def essential(self) -> Optional[pulumi.Input[bool]]:
+ """
+ Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ """
+ return pulumi.get(self, "essential")
+
+ @essential.setter
+ def essential(self, value: Optional[pulumi.Input[bool]]):
+ pulumi.set(self, "essential", value)
+
+ @property
+ @pulumi.getter
+ def source(self) -> Optional[pulumi.Input[str]]:
+ """
+ The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ return pulumi.get(self, "source")
+
+ @source.setter
+ def source(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "source", value)
+
+
+@pulumi.input_type
+class ApplicationRequiredResourceAccessArgs:
+ def __init__(__self__, *,
+ resource_accesses: pulumi.Input[List[pulumi.Input['ApplicationRequiredResourceAccessResourceAccessArgs']]],
+ resource_app_id: pulumi.Input[str]):
+ """
+ :param pulumi.Input[List[pulumi.Input['ApplicationRequiredResourceAccessResourceAccessArgs']]] resource_accesses: A collection of `resource_access` blocks as documented below.
+ :param pulumi.Input[str] resource_app_id: The unique identifier for the resource that the application requires access to. This should be equal to the appId declared on the target resource application.
+ """
+ pulumi.set(__self__, "resource_accesses", resource_accesses)
+ pulumi.set(__self__, "resource_app_id", resource_app_id)
+
+ @property
+ @pulumi.getter(name="resourceAccesses")
+ def resource_accesses(self) -> pulumi.Input[List[pulumi.Input['ApplicationRequiredResourceAccessResourceAccessArgs']]]:
+ """
+ A collection of `resource_access` blocks as documented below.
+ """
+ return pulumi.get(self, "resource_accesses")
+
+ @resource_accesses.setter
+ def resource_accesses(self, value: pulumi.Input[List[pulumi.Input['ApplicationRequiredResourceAccessResourceAccessArgs']]]):
+ pulumi.set(self, "resource_accesses", value)
+
+ @property
+ @pulumi.getter(name="resourceAppId")
+ def resource_app_id(self) -> pulumi.Input[str]:
+ """
+ The unique identifier for the resource that the application requires access to. This should be equal to the appId declared on the target resource application.
+ """
+ return pulumi.get(self, "resource_app_id")
+
+ @resource_app_id.setter
+ def resource_app_id(self, value: pulumi.Input[str]):
+ pulumi.set(self, "resource_app_id", value)
+
+
+@pulumi.input_type
+class ApplicationRequiredResourceAccessResourceAccessArgs:
+ def __init__(__self__, *,
+ id: pulumi.Input[str],
+ type: pulumi.Input[str]):
+ """
+ :param pulumi.Input[str] id: The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
+ :param pulumi.Input[str] type: Specifies whether the id property references an `OAuth2Permission` or an `AppRole`. Possible values are `Scope` or `Role`.
+ """
+ pulumi.set(__self__, "id", id)
+ pulumi.set(__self__, "type", type)
+
+ @property
+ @pulumi.getter
+ def id(self) -> pulumi.Input[str]:
+ """
+ The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
+ """
+ return pulumi.get(self, "id")
+
+ @id.setter
+ def id(self, value: pulumi.Input[str]):
+ pulumi.set(self, "id", value)
+
+ @property
+ @pulumi.getter
+ def type(self) -> pulumi.Input[str]:
+ """
+ Specifies whether the id property references an `OAuth2Permission` or an `AppRole`. Possible values are `Scope` or `Role`.
+ """
+ return pulumi.get(self, "type")
+
+ @type.setter
+ def type(self, value: pulumi.Input[str]):
+ pulumi.set(self, "type", value)
+
+
+@pulumi.input_type
+class ServicePrincipalOauth2PermissionArgs:
+ def __init__(__self__, *,
+ admin_consent_description: Optional[pulumi.Input[str]] = None,
+ admin_consent_display_name: Optional[pulumi.Input[str]] = None,
+ id: Optional[pulumi.Input[str]] = None,
+ is_enabled: Optional[pulumi.Input[bool]] = None,
+ type: Optional[pulumi.Input[str]] = None,
+ user_consent_description: Optional[pulumi.Input[str]] = None,
+ user_consent_display_name: Optional[pulumi.Input[str]] = None,
+ value: Optional[pulumi.Input[str]] = None):
+ """
+ :param pulumi.Input[str] admin_consent_description: The description of the admin consent.
+ :param pulumi.Input[str] admin_consent_display_name: The display name of the admin consent.
+ :param pulumi.Input[str] id: The unique identifier for one of the `OAuth2Permission`.
+ :param pulumi.Input[bool] is_enabled: Is this permission enabled?
+ :param pulumi.Input[str] type: The type of the permission.
+ :param pulumi.Input[str] user_consent_description: The description of the user consent.
+ :param pulumi.Input[str] user_consent_display_name: The display name of the user consent.
+ :param pulumi.Input[str] value: The name of this permission.
+ """
+ if admin_consent_description is not None:
+ pulumi.set(__self__, "admin_consent_description", admin_consent_description)
+ if admin_consent_display_name is not None:
+ pulumi.set(__self__, "admin_consent_display_name", admin_consent_display_name)
+ if id is not None:
+ pulumi.set(__self__, "id", id)
+ if is_enabled is not None:
+ pulumi.set(__self__, "is_enabled", is_enabled)
+ if type is not None:
+ pulumi.set(__self__, "type", type)
+ if user_consent_description is not None:
+ pulumi.set(__self__, "user_consent_description", user_consent_description)
+ if user_consent_display_name is not None:
+ pulumi.set(__self__, "user_consent_display_name", user_consent_display_name)
+ if value is not None:
+ pulumi.set(__self__, "value", value)
+
+ @property
+ @pulumi.getter(name="adminConsentDescription")
+ def admin_consent_description(self) -> Optional[pulumi.Input[str]]:
+ """
+ The description of the admin consent.
+ """
+ return pulumi.get(self, "admin_consent_description")
+
+ @admin_consent_description.setter
+ def admin_consent_description(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "admin_consent_description", value)
+
+ @property
+ @pulumi.getter(name="adminConsentDisplayName")
+ def admin_consent_display_name(self) -> Optional[pulumi.Input[str]]:
+ """
+ The display name of the admin consent.
+ """
+ return pulumi.get(self, "admin_consent_display_name")
+
+ @admin_consent_display_name.setter
+ def admin_consent_display_name(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "admin_consent_display_name", value)
+
+ @property
+ @pulumi.getter
+ def id(self) -> Optional[pulumi.Input[str]]:
+ """
+ The unique identifier for one of the `OAuth2Permission`.
+ """
+ return pulumi.get(self, "id")
+
+ @id.setter
+ def id(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "id", value)
+
+ @property
+ @pulumi.getter(name="isEnabled")
+ def is_enabled(self) -> Optional[pulumi.Input[bool]]:
+ """
+ Is this permission enabled?
+ """
+ return pulumi.get(self, "is_enabled")
+
+ @is_enabled.setter
+ def is_enabled(self, value: Optional[pulumi.Input[bool]]):
+ pulumi.set(self, "is_enabled", value)
+
+ @property
+ @pulumi.getter
+ def type(self) -> Optional[pulumi.Input[str]]:
+ """
+ The type of the permission.
+ """
+ return pulumi.get(self, "type")
+
+ @type.setter
+ def type(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "type", value)
+
+ @property
+ @pulumi.getter(name="userConsentDescription")
+ def user_consent_description(self) -> Optional[pulumi.Input[str]]:
+ """
+ The description of the user consent.
+ """
+ return pulumi.get(self, "user_consent_description")
+
+ @user_consent_description.setter
+ def user_consent_description(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "user_consent_description", value)
+
+ @property
+ @pulumi.getter(name="userConsentDisplayName")
+ def user_consent_display_name(self) -> Optional[pulumi.Input[str]]:
+ """
+ The display name of the user consent.
+ """
+ return pulumi.get(self, "user_consent_display_name")
+
+ @user_consent_display_name.setter
+ def user_consent_display_name(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "user_consent_display_name", value)
+
+ @property
+ @pulumi.getter
+ def value(self) -> Optional[pulumi.Input[str]]:
+ """
+ The name of this permission.
+ """
+ return pulumi.get(self, "value")
+
+ @value.setter
+ def value(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "value", value)
+
+
+@pulumi.input_type
+class GetApplicationOauth2PermissionArgs:
+ def __init__(__self__, *,
+ admin_consent_description: str,
+ admin_consent_display_name: str,
+ id: str,
+ is_enabled: bool,
+ type: str,
+ user_consent_description: str,
+ user_consent_display_name: str,
+ value: str):
+ """
+ :param str admin_consent_description: The description of the admin consent
+ :param str admin_consent_display_name: The display name of the admin consent
+ :param str id: The unique identifier of the `app_role`.
+ :param bool is_enabled: Determines if the app role is enabled.
+ :param str type: The type of the permission
+ :param str user_consent_description: The description of the user consent
+ :param str user_consent_display_name: The display name of the user consent
+ :param str value: Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ pulumi.set(__self__, "admin_consent_description", admin_consent_description)
+ pulumi.set(__self__, "admin_consent_display_name", admin_consent_display_name)
+ pulumi.set(__self__, "id", id)
+ pulumi.set(__self__, "is_enabled", is_enabled)
+ pulumi.set(__self__, "type", type)
+ pulumi.set(__self__, "user_consent_description", user_consent_description)
+ pulumi.set(__self__, "user_consent_display_name", user_consent_display_name)
+ pulumi.set(__self__, "value", value)
+
+ @property
+ @pulumi.getter(name="adminConsentDescription")
+ def admin_consent_description(self) -> str:
+ """
+ The description of the admin consent
+ """
+ return pulumi.get(self, "admin_consent_description")
+
+ @admin_consent_description.setter
+ def admin_consent_description(self, value: str):
+ pulumi.set(self, "admin_consent_description", value)
+
+ @property
+ @pulumi.getter(name="adminConsentDisplayName")
+ def admin_consent_display_name(self) -> str:
+ """
+ The display name of the admin consent
+ """
+ return pulumi.get(self, "admin_consent_display_name")
+
+ @admin_consent_display_name.setter
+ def admin_consent_display_name(self, value: str):
+ pulumi.set(self, "admin_consent_display_name", value)
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
+ """
+ The unique identifier of the `app_role`.
+ """
+ return pulumi.get(self, "id")
+
+ @id.setter
+ def id(self, value: str):
+ pulumi.set(self, "id", value)
+
+ @property
+ @pulumi.getter(name="isEnabled")
+ def is_enabled(self) -> bool:
+ """
+ Determines if the app role is enabled.
+ """
+ return pulumi.get(self, "is_enabled")
+
+ @is_enabled.setter
+ def is_enabled(self, value: bool):
+ pulumi.set(self, "is_enabled", value)
+
+ @property
+ @pulumi.getter
+ def type(self) -> str:
+ """
+ The type of the permission
+ """
+ return pulumi.get(self, "type")
+
+ @type.setter
+ def type(self, value: str):
+ pulumi.set(self, "type", value)
+
+ @property
+ @pulumi.getter(name="userConsentDescription")
+ def user_consent_description(self) -> str:
+ """
+ The description of the user consent
+ """
+ return pulumi.get(self, "user_consent_description")
+
+ @user_consent_description.setter
+ def user_consent_description(self, value: str):
+ pulumi.set(self, "user_consent_description", value)
+
+ @property
+ @pulumi.getter(name="userConsentDisplayName")
+ def user_consent_display_name(self) -> str:
+ """
+ The display name of the user consent
+ """
+ return pulumi.get(self, "user_consent_display_name")
+
+ @user_consent_display_name.setter
+ def user_consent_display_name(self, value: str):
+ pulumi.set(self, "user_consent_display_name", value)
+
+ @property
+ @pulumi.getter
+ def value(self) -> str:
+ """
+ Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ return pulumi.get(self, "value")
+
+ @value.setter
+ def value(self, value: str):
+ pulumi.set(self, "value", value)
+
+
+@pulumi.input_type
+class GetApplicationOptionalClaimsArgs:
+ def __init__(__self__, *,
+ access_tokens: Optional[List['GetApplicationOptionalClaimsAccessTokenArgs']] = None,
+ id_tokens: Optional[List['GetApplicationOptionalClaimsIdTokenArgs']] = None):
+ if access_tokens is not None:
+ pulumi.set(__self__, "access_tokens", access_tokens)
+ if id_tokens is not None:
+ pulumi.set(__self__, "id_tokens", id_tokens)
+
+ @property
+ @pulumi.getter(name="accessTokens")
+ def access_tokens(self) -> Optional[List['GetApplicationOptionalClaimsAccessTokenArgs']]:
+ return pulumi.get(self, "access_tokens")
+
+ @access_tokens.setter
+ def access_tokens(self, value: Optional[List['GetApplicationOptionalClaimsAccessTokenArgs']]):
+ pulumi.set(self, "access_tokens", value)
+
+ @property
+ @pulumi.getter(name="idTokens")
+ def id_tokens(self) -> Optional[List['GetApplicationOptionalClaimsIdTokenArgs']]:
+ return pulumi.get(self, "id_tokens")
+
+ @id_tokens.setter
+ def id_tokens(self, value: Optional[List['GetApplicationOptionalClaimsIdTokenArgs']]):
+ pulumi.set(self, "id_tokens", value)
+
+
+@pulumi.input_type
+class GetApplicationOptionalClaimsAccessTokenArgs:
+ def __init__(__self__, *,
+ name: str,
+ additional_properties: Optional[List[str]] = None,
+ essential: Optional[bool] = None,
+ source: Optional[str] = None):
+ """
+ :param str name: Specifies the name of the Application within Azure Active Directory.
+ :param List[str] additional_properties: List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ :param bool essential: Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ :param str source: The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ pulumi.set(__self__, "name", name)
+ if additional_properties is not None:
+ pulumi.set(__self__, "additional_properties", additional_properties)
+ if essential is not None:
+ pulumi.set(__self__, "essential", essential)
+ if source is not None:
+ pulumi.set(__self__, "source", source)
+
+ @property
+ @pulumi.getter
+ def name(self) -> str:
+ """
+ Specifies the name of the Application within Azure Active Directory.
+ """
+ return pulumi.get(self, "name")
+
+ @name.setter
+ def name(self, value: str):
+ pulumi.set(self, "name", value)
+
+ @property
+ @pulumi.getter(name="additionalProperties")
+ def additional_properties(self) -> Optional[List[str]]:
+ """
+ List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ """
+ return pulumi.get(self, "additional_properties")
+
+ @additional_properties.setter
+ def additional_properties(self, value: Optional[List[str]]):
+ pulumi.set(self, "additional_properties", value)
+
+ @property
+ @pulumi.getter
+ def essential(self) -> Optional[bool]:
+ """
+ Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ """
+ return pulumi.get(self, "essential")
+
+ @essential.setter
+ def essential(self, value: Optional[bool]):
+ pulumi.set(self, "essential", value)
+
+ @property
+ @pulumi.getter
+ def source(self) -> Optional[str]:
+ """
+ The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ return pulumi.get(self, "source")
+
+ @source.setter
+ def source(self, value: Optional[str]):
+ pulumi.set(self, "source", value)
+
+
+@pulumi.input_type
+class GetApplicationOptionalClaimsIdTokenArgs:
+ def __init__(__self__, *,
+ name: str,
+ additional_properties: Optional[List[str]] = None,
+ essential: Optional[bool] = None,
+ source: Optional[str] = None):
+ """
+ :param str name: Specifies the name of the Application within Azure Active Directory.
+ :param List[str] additional_properties: List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ :param bool essential: Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ :param str source: The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ pulumi.set(__self__, "name", name)
+ if additional_properties is not None:
+ pulumi.set(__self__, "additional_properties", additional_properties)
+ if essential is not None:
+ pulumi.set(__self__, "essential", essential)
+ if source is not None:
+ pulumi.set(__self__, "source", source)
+
+ @property
+ @pulumi.getter
+ def name(self) -> str:
+ """
+ Specifies the name of the Application within Azure Active Directory.
+ """
+ return pulumi.get(self, "name")
+
+ @name.setter
+ def name(self, value: str):
+ pulumi.set(self, "name", value)
+
+ @property
+ @pulumi.getter(name="additionalProperties")
+ def additional_properties(self) -> Optional[List[str]]:
+ """
+ List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ """
+ return pulumi.get(self, "additional_properties")
+
+ @additional_properties.setter
+ def additional_properties(self, value: Optional[List[str]]):
+ pulumi.set(self, "additional_properties", value)
+
+ @property
+ @pulumi.getter
+ def essential(self) -> Optional[bool]:
+ """
+ Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ """
+ return pulumi.get(self, "essential")
+
+ @essential.setter
+ def essential(self, value: Optional[bool]):
+ pulumi.set(self, "essential", value)
+
+ @property
+ @pulumi.getter
+ def source(self) -> Optional[str]:
+ """
+ The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ return pulumi.get(self, "source")
+
+ @source.setter
+ def source(self, value: Optional[str]):
+ pulumi.set(self, "source", value)
+
+
+@pulumi.input_type
+class GetServicePrincipalOauth2PermissionArgs:
+ def __init__(__self__, *,
+ admin_consent_description: str,
+ admin_consent_display_name: str,
+ id: str,
+ is_enabled: bool,
+ type: str,
+ user_consent_description: str,
+ user_consent_display_name: str,
+ value: str):
+ """
+ :param str admin_consent_description: The description of the admin consent
+ :param str admin_consent_display_name: The display name of the admin consent
+ :param str id: The unique identifier of the `app_role`.
+ :param bool is_enabled: Determines if the app role is enabled.
+ :param str type: The type of the permission
+ :param str user_consent_description: The description of the user consent
+ :param str user_consent_display_name: The display name of the user consent
+ :param str value: Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ pulumi.set(__self__, "admin_consent_description", admin_consent_description)
+ pulumi.set(__self__, "admin_consent_display_name", admin_consent_display_name)
+ pulumi.set(__self__, "id", id)
+ pulumi.set(__self__, "is_enabled", is_enabled)
+ pulumi.set(__self__, "type", type)
+ pulumi.set(__self__, "user_consent_description", user_consent_description)
+ pulumi.set(__self__, "user_consent_display_name", user_consent_display_name)
+ pulumi.set(__self__, "value", value)
+
+ @property
+ @pulumi.getter(name="adminConsentDescription")
+ def admin_consent_description(self) -> str:
+ """
+ The description of the admin consent
+ """
+ return pulumi.get(self, "admin_consent_description")
+
+ @admin_consent_description.setter
+ def admin_consent_description(self, value: str):
+ pulumi.set(self, "admin_consent_description", value)
+
+ @property
+ @pulumi.getter(name="adminConsentDisplayName")
+ def admin_consent_display_name(self) -> str:
+ """
+ The display name of the admin consent
+ """
+ return pulumi.get(self, "admin_consent_display_name")
+
+ @admin_consent_display_name.setter
+ def admin_consent_display_name(self, value: str):
+ pulumi.set(self, "admin_consent_display_name", value)
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
+ """
+ The unique identifier of the `app_role`.
+ """
+ return pulumi.get(self, "id")
+
+ @id.setter
+ def id(self, value: str):
+ pulumi.set(self, "id", value)
+
+ @property
+ @pulumi.getter(name="isEnabled")
+ def is_enabled(self) -> bool:
+ """
+ Determines if the app role is enabled.
+ """
+ return pulumi.get(self, "is_enabled")
+
+ @is_enabled.setter
+ def is_enabled(self, value: bool):
+ pulumi.set(self, "is_enabled", value)
+
+ @property
+ @pulumi.getter
+ def type(self) -> str:
+ """
+ The type of the permission
+ """
+ return pulumi.get(self, "type")
+
+ @type.setter
+ def type(self, value: str):
+ pulumi.set(self, "type", value)
+
+ @property
+ @pulumi.getter(name="userConsentDescription")
+ def user_consent_description(self) -> str:
+ """
+ The description of the user consent
+ """
+ return pulumi.get(self, "user_consent_description")
+
+ @user_consent_description.setter
+ def user_consent_description(self, value: str):
+ pulumi.set(self, "user_consent_description", value)
+
+ @property
+ @pulumi.getter(name="userConsentDisplayName")
+ def user_consent_display_name(self) -> str:
+ """
+ The display name of the user consent
+ """
+ return pulumi.get(self, "user_consent_display_name")
+
+ @user_consent_display_name.setter
+ def user_consent_display_name(self, value: str):
+ pulumi.set(self, "user_consent_display_name", value)
+
+ @property
+ @pulumi.getter
+ def value(self) -> str:
+ """
+ Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ return pulumi.get(self, "value")
+
+ @value.setter
+ def value(self, value: str):
+ pulumi.set(self, "value", value)
+
+
diff --git a/sdk/python/pulumi_azuread/tables.py b/sdk/python/pulumi_azuread/_tables.py
similarity index 81%
rename from sdk/python/pulumi_azuread/tables.py
rename to sdk/python/pulumi_azuread/_tables.py
index 9763cec3b..4775b66a0 100644
--- a/sdk/python/pulumi_azuread/tables.py
+++ b/sdk/python/pulumi_azuread/_tables.py
@@ -2,13 +2,17 @@
# *** 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! ***
-_SNAKE_TO_CAMEL_CASE_TABLE = {
+SNAKE_TO_CAMEL_CASE_TABLE = {
"account_enabled": "accountEnabled",
"app_role_assignment_required": "appRoleAssignmentRequired",
"app_roles": "appRoles",
"application_id": "applicationId",
"application_object_id": "applicationObjectId",
"available_to_other_tenants": "availableToOtherTenants",
+ "client_certificate_password": "clientCertificatePassword",
+ "client_certificate_path": "clientCertificatePath",
+ "client_id": "clientId",
+ "client_secret": "clientSecret",
"display_name": "displayName",
"end_date": "endDate",
"end_date_relative": "endDateRelative",
@@ -21,6 +25,7 @@
"logout_url": "logoutUrl",
"mail_nickname": "mailNickname",
"member_object_id": "memberObjectId",
+ "msi_endpoint": "msiEndpoint",
"oauth2_allow_implicit_flow": "oauth2AllowImplicitFlow",
"oauth2_permissions": "oauth2Permissions",
"object_id": "objectId",
@@ -33,17 +38,24 @@
"required_resource_accesses": "requiredResourceAccesses",
"service_principal_id": "servicePrincipalId",
"start_date": "startDate",
+ "subscription_id": "subscriptionId",
+ "tenant_id": "tenantId",
"usage_location": "usageLocation",
+ "use_msi": "useMsi",
"user_principal_name": "userPrincipalName",
}
-_CAMEL_TO_SNAKE_CASE_TABLE = {
+CAMEL_TO_SNAKE_CASE_TABLE = {
"accountEnabled": "account_enabled",
"appRoleAssignmentRequired": "app_role_assignment_required",
"appRoles": "app_roles",
"applicationId": "application_id",
"applicationObjectId": "application_object_id",
"availableToOtherTenants": "available_to_other_tenants",
+ "clientCertificatePassword": "client_certificate_password",
+ "clientCertificatePath": "client_certificate_path",
+ "clientId": "client_id",
+ "clientSecret": "client_secret",
"displayName": "display_name",
"endDate": "end_date",
"endDateRelative": "end_date_relative",
@@ -56,6 +68,7 @@
"logoutUrl": "logout_url",
"mailNickname": "mail_nickname",
"memberObjectId": "member_object_id",
+ "msiEndpoint": "msi_endpoint",
"oauth2AllowImplicitFlow": "oauth2_allow_implicit_flow",
"oauth2Permissions": "oauth2_permissions",
"objectId": "object_id",
@@ -68,6 +81,9 @@
"requiredResourceAccesses": "required_resource_accesses",
"servicePrincipalId": "service_principal_id",
"startDate": "start_date",
+ "subscriptionId": "subscription_id",
+ "tenantId": "tenant_id",
"usageLocation": "usage_location",
+ "useMsi": "use_msi",
"userPrincipalName": "user_principal_name",
}
diff --git a/sdk/python/pulumi_azuread/utilities.py b/sdk/python/pulumi_azuread/_utilities.py
similarity index 96%
rename from sdk/python/pulumi_azuread/utilities.py
rename to sdk/python/pulumi_azuread/_utilities.py
index 02b6ab316..829bc0cf8 100644
--- a/sdk/python/pulumi_azuread/utilities.py
+++ b/sdk/python/pulumi_azuread/_utilities.py
@@ -52,7 +52,7 @@ def get_env_float(*args):
def get_version():
# __name__ is set to the fully-qualified name of the current module, In our case, it will be
- # .utilities. is the module we want to query the version for.
+ # ._utilities. is the module we want to query the version for.
root_package, *rest = __name__.split('.')
# pkg_resources uses setuptools to inspect the set of installed packages. We use it here to ask
diff --git a/sdk/python/pulumi_azuread/application.py b/sdk/python/pulumi_azuread/application.py
index 261ecc700..3b4ce3cdb 100644
--- a/sdk/python/pulumi_azuread/application.py
+++ b/sdk/python/pulumi_azuread/application.py
@@ -5,118 +5,37 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+from . import outputs
+from ._inputs import *
+
+__all__ = ['Application']
class Application(pulumi.CustomResource):
- app_roles: pulumi.Output[list]
- """
- A collection of `app_role` blocks as documented below. For more information https://docs.microsoft.com/en-us/azure/architecture/multitenant-identity/app-roles
-
- * `allowedMemberTypes` (`list`) - Specifies whether this app role definition can be assigned to users and groups by setting to `User`, or to other applications (that are accessing this application in daemon service scenarios) by setting to `Application`, or to both.
- * `description` (`str`) - Permission help text that appears in the admin app assignment and consent experiences.
- * `display_name` (`str`) - Display name for the permission that appears in the admin consent and app assignment experiences.
- * `id` (`str`) - The unique identifier of the `app_role`.
- * `isEnabled` (`bool`) - Determines if the permission is enabled: defaults to `true`.
- * `value` (`str`) - The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
- """
- application_id: pulumi.Output[str]
- """
- The Application ID.
- """
- available_to_other_tenants: pulumi.Output[bool]
- """
- Is this Azure AD Application available to other tenants? Defaults to `false`.
- """
- group_membership_claims: pulumi.Output[str]
- """
- Configures the `groups` claim issued in a user or OAuth 2.0 access token that the app expects. Defaults to `SecurityGroup`. Possible values are `None`, `SecurityGroup`, `DirectoryRole`, `ApplicationGroup` or `All`.
- """
- homepage: pulumi.Output[str]
- """
- The URL to the application's home page. If no homepage is specified this defaults to `https://{name}`.
- """
- identifier_uris: pulumi.Output[list]
- """
- A list of user-defined URI(s) that uniquely identify a Web application within it's Azure AD tenant, or within a verified custom domain if the application is multi-tenant.
- """
- logout_url: pulumi.Output[str]
- """
- The URL of the logout page.
- """
- name: pulumi.Output[str]
- """
- The display name for the application.
- """
- oauth2_allow_implicit_flow: pulumi.Output[bool]
- """
- Does this Azure AD Application allow OAuth2.0 implicit flow tokens? Defaults to `false`.
- """
- oauth2_permissions: pulumi.Output[list]
- """
- A collection of OAuth 2.0 permission scopes that the web API (resource) app exposes to client apps. Each permission is covered by `oauth2_permissions` blocks as documented below.
-
- * `adminConsentDescription` (`str`) - Permission help text that appears in the admin consent and app assignment experiences.
- * `adminConsentDisplayName` (`str`) - Display name for the permission that appears in the admin consent and app assignment experiences.
- * `id` (`str`) - The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
- * `isEnabled` (`bool`) - Determines if the app role is enabled: Defaults to `true`.
- * `type` (`str`) - Type of an application: `webapp/api` or `native`. Defaults to `webapp/api`. For `native` apps type `identifier_uris` property can not not be set.
- * `userConsentDescription` (`str`) - Permission help text that appears in the end user consent experience.
- * `userConsentDisplayName` (`str`) - Display name for the permission that appears in the end user consent experience.
- * `value` (`str`) - Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
- """
- object_id: pulumi.Output[str]
- """
- The Application's Object ID.
- """
- optional_claims: pulumi.Output[dict]
- """
- A collection of `access_token` or `id_token` blocks as documented below which list the optional claims configured for each token type. For more information see https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims
-
- * `accessTokens` (`list`)
- * `additionalProperties` (`list`) - List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
- * `essential` (`bool`) - Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
- * `name` (`str`) - The name of the optional claim.
- * `source` (`str`) - The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
-
- * `idTokens` (`list`)
- * `additionalProperties` (`list`) - List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
- * `essential` (`bool`) - Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
- * `name` (`str`) - The display name for the application.
- * `source` (`str`) - The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
- """
- owners: pulumi.Output[list]
- """
- A list of Azure AD Object IDs that will be granted ownership of the application. Defaults to the Object ID of the caller creating the application. If a list is specified the caller Object ID will no longer be included unless explicitly added to the list.
- """
- prevent_duplicate_names: pulumi.Output[bool]
- """
- If `true`, will return an error when an existing Application is found with the same name. Defaults to `false`.
- """
- public_client: pulumi.Output[bool]
- """
- Is this Azure AD Application a public client? Defaults to `false`.
- """
- reply_urls: pulumi.Output[list]
- """
- A list of URLs that user tokens are sent to for sign in, or the redirect URIs that OAuth 2.0 authorization codes and access tokens are sent to.
- """
- required_resource_accesses: pulumi.Output[list]
- """
- A collection of `required_resource_access` blocks as documented below.
-
- * `resourceAccesses` (`list`) - A collection of `resource_access` blocks as documented below.
- * `id` (`str`) - The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
- * `type` (`str`) - Specifies whether the id property references an `OAuth2Permission` or an `AppRole`. Possible values are `Scope` or `Role`.
-
- * `resourceAppId` (`str`) - The unique identifier for the resource that the application requires access to. This should be equal to the appId declared on the target resource application.
- """
- type: pulumi.Output[str]
- """
- Type of an application: `webapp/api` or `native`. Defaults to `webapp/api`. For `native` apps type `identifier_uris` property can not not be set.
- """
- def __init__(__self__, resource_name, opts=None, app_roles=None, available_to_other_tenants=None, group_membership_claims=None, homepage=None, identifier_uris=None, logout_url=None, name=None, oauth2_allow_implicit_flow=None, oauth2_permissions=None, optional_claims=None, owners=None, prevent_duplicate_names=None, public_client=None, reply_urls=None, required_resource_accesses=None, type=None, __props__=None, __name__=None, __opts__=None):
+ def __init__(__self__,
+ resource_name,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ app_roles: Optional[pulumi.Input[List[pulumi.Input[pulumi.InputType['ApplicationAppRoleArgs']]]]] = None,
+ available_to_other_tenants: Optional[pulumi.Input[bool]] = None,
+ group_membership_claims: Optional[pulumi.Input[str]] = None,
+ homepage: Optional[pulumi.Input[str]] = None,
+ identifier_uris: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ logout_url: Optional[pulumi.Input[str]] = None,
+ name: Optional[pulumi.Input[str]] = None,
+ oauth2_allow_implicit_flow: Optional[pulumi.Input[bool]] = None,
+ oauth2_permissions: Optional[pulumi.Input[List[pulumi.Input[pulumi.InputType['ApplicationOauth2PermissionArgs']]]]] = None,
+ optional_claims: Optional[pulumi.Input[pulumi.InputType['ApplicationOptionalClaimsArgs']]] = None,
+ owners: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ prevent_duplicate_names: Optional[pulumi.Input[bool]] = None,
+ public_client: Optional[pulumi.Input[bool]] = None,
+ reply_urls: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ required_resource_accesses: Optional[pulumi.Input[List[pulumi.Input[pulumi.InputType['ApplicationRequiredResourceAccessArgs']]]]] = None,
+ type: Optional[pulumi.Input[str]] = None,
+ __props__=None,
+ __name__=None,
+ __opts__=None):
"""
Manages an Application within Azure Active Directory.
@@ -129,145 +48,103 @@ def __init__(__self__, resource_name, opts=None, app_roles=None, available_to_ot
import pulumi_azuread as azuread
example = azuread.Application("example",
- app_roles=[{
- "allowedMemberTypes": [
+ app_roles=[azuread.ApplicationAppRoleArgs(
+ allowed_member_types=[
"User",
"Application",
],
- "description": "Admins can manage roles and perform all task actions",
- "display_name": "Admin",
- "isEnabled": True,
- "value": "Admin",
- }],
+ description="Admins can manage roles and perform all task actions",
+ display_name="Admin",
+ is_enabled=True,
+ value="Admin",
+ )],
available_to_other_tenants=False,
homepage="https://homepage",
identifier_uris=["https://uri"],
oauth2_allow_implicit_flow=True,
oauth2_permissions=[
- {
- "adminConsentDescription": "Allow the application to access example on behalf of the signed-in user.",
- "adminConsentDisplayName": "Access example",
- "isEnabled": True,
- "type": "User",
- "userConsentDescription": "Allow the application to access example on your behalf.",
- "userConsentDisplayName": "Access example",
- "value": "user_impersonation",
- },
- {
- "adminConsentDescription": "Administer the example application",
- "adminConsentDisplayName": "Administer",
- "isEnabled": True,
- "type": "Admin",
- "value": "administer",
- },
+ azuread.ApplicationOauth2PermissionArgs(
+ admin_consent_description="Allow the application to access example on behalf of the signed-in user.",
+ admin_consent_display_name="Access example",
+ is_enabled=True,
+ type="User",
+ user_consent_description="Allow the application to access example on your behalf.",
+ user_consent_display_name="Access example",
+ value="user_impersonation",
+ ),
+ azuread.ApplicationOauth2PermissionArgs(
+ admin_consent_description="Administer the example application",
+ admin_consent_display_name="Administer",
+ is_enabled=True,
+ type="Admin",
+ value="administer",
+ ),
],
- optional_claims={
- "accessTokens": [
- {
- "name": "myclaim",
- },
- {
- "name": "otherclaim",
- },
+ optional_claims=azuread.ApplicationOptionalClaimsArgs(
+ access_tokens=[
+ azuread.ApplicationOptionalClaimsAccessTokenArgs(
+ name="myclaim",
+ ),
+ azuread.ApplicationOptionalClaimsAccessTokenArgs(
+ name="otherclaim",
+ ),
],
- "idTokens": [{
- "additionalProperties": ["emit_as_roles"],
- "essential": True,
- "name": "userclaim",
- "source": "user",
- }],
- },
+ id_tokens=[azuread.ApplicationOptionalClaimsIdTokenArgs(
+ additional_properties=["emit_as_roles"],
+ essential=True,
+ name="userclaim",
+ source="user",
+ )],
+ ),
owners=["00000004-0000-0000-c000-000000000000"],
reply_urls=["https://replyurl"],
required_resource_accesses=[
- {
- "resourceAccesses": [
- {
- "id": "...",
- "type": "Role",
- },
- {
- "id": "...",
- "type": "Scope",
- },
- {
- "id": "...",
- "type": "Scope",
- },
+ azuread.ApplicationRequiredResourceAccessArgs(
+ resource_accesses=[
+ azuread.ApplicationRequiredResourceAccessResourceAccessArgs(
+ id="...",
+ type="Role",
+ ),
+ azuread.ApplicationRequiredResourceAccessResourceAccessArgs(
+ id="...",
+ type="Scope",
+ ),
+ azuread.ApplicationRequiredResourceAccessResourceAccessArgs(
+ id="...",
+ type="Scope",
+ ),
],
- "resourceAppId": "00000003-0000-0000-c000-000000000000",
- },
- {
- "resourceAccesses": [{
- "id": "...",
- "type": "Scope",
- }],
- "resourceAppId": "00000002-0000-0000-c000-000000000000",
- },
+ resource_app_id="00000003-0000-0000-c000-000000000000",
+ ),
+ azuread.ApplicationRequiredResourceAccessArgs(
+ resource_accesses=[azuread.ApplicationRequiredResourceAccessResourceAccessArgs(
+ id="...",
+ type="Scope",
+ )],
+ resource_app_id="00000002-0000-0000-c000-000000000000",
+ ),
],
type="webapp/api")
```
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
- :param pulumi.Input[list] app_roles: A collection of `app_role` blocks as documented below. For more information https://docs.microsoft.com/en-us/azure/architecture/multitenant-identity/app-roles
+ :param pulumi.Input[List[pulumi.Input[pulumi.InputType['ApplicationAppRoleArgs']]]] app_roles: A collection of `app_role` blocks as documented below. For more information https://docs.microsoft.com/en-us/azure/architecture/multitenant-identity/app-roles
:param pulumi.Input[bool] available_to_other_tenants: Is this Azure AD Application available to other tenants? Defaults to `false`.
:param pulumi.Input[str] group_membership_claims: Configures the `groups` claim issued in a user or OAuth 2.0 access token that the app expects. Defaults to `SecurityGroup`. Possible values are `None`, `SecurityGroup`, `DirectoryRole`, `ApplicationGroup` or `All`.
:param pulumi.Input[str] homepage: The URL to the application's home page. If no homepage is specified this defaults to `https://{name}`.
- :param pulumi.Input[list] identifier_uris: A list of user-defined URI(s) that uniquely identify a Web application within it's Azure AD tenant, or within a verified custom domain if the application is multi-tenant.
+ :param pulumi.Input[List[pulumi.Input[str]]] identifier_uris: A list of user-defined URI(s) that uniquely identify a Web application within it's Azure AD tenant, or within a verified custom domain if the application is multi-tenant.
:param pulumi.Input[str] logout_url: The URL of the logout page.
:param pulumi.Input[str] name: The display name for the application.
:param pulumi.Input[bool] oauth2_allow_implicit_flow: Does this Azure AD Application allow OAuth2.0 implicit flow tokens? Defaults to `false`.
- :param pulumi.Input[list] oauth2_permissions: A collection of OAuth 2.0 permission scopes that the web API (resource) app exposes to client apps. Each permission is covered by `oauth2_permissions` blocks as documented below.
- :param pulumi.Input[dict] optional_claims: A collection of `access_token` or `id_token` blocks as documented below which list the optional claims configured for each token type. For more information see https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims
- :param pulumi.Input[list] owners: A list of Azure AD Object IDs that will be granted ownership of the application. Defaults to the Object ID of the caller creating the application. If a list is specified the caller Object ID will no longer be included unless explicitly added to the list.
+ :param pulumi.Input[List[pulumi.Input[pulumi.InputType['ApplicationOauth2PermissionArgs']]]] oauth2_permissions: A collection of OAuth 2.0 permission scopes that the web API (resource) app exposes to client apps. Each permission is covered by `oauth2_permissions` blocks as documented below.
+ :param pulumi.Input[pulumi.InputType['ApplicationOptionalClaimsArgs']] optional_claims: A collection of `access_token` or `id_token` blocks as documented below which list the optional claims configured for each token type. For more information see https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims
+ :param pulumi.Input[List[pulumi.Input[str]]] owners: A list of Azure AD Object IDs that will be granted ownership of the application. Defaults to the Object ID of the caller creating the application. If a list is specified the caller Object ID will no longer be included unless explicitly added to the list.
:param pulumi.Input[bool] prevent_duplicate_names: If `true`, will return an error when an existing Application is found with the same name. Defaults to `false`.
:param pulumi.Input[bool] public_client: Is this Azure AD Application a public client? Defaults to `false`.
- :param pulumi.Input[list] reply_urls: A list of URLs that user tokens are sent to for sign in, or the redirect URIs that OAuth 2.0 authorization codes and access tokens are sent to.
- :param pulumi.Input[list] required_resource_accesses: A collection of `required_resource_access` blocks as documented below.
+ :param pulumi.Input[List[pulumi.Input[str]]] reply_urls: A list of URLs that user tokens are sent to for sign in, or the redirect URIs that OAuth 2.0 authorization codes and access tokens are sent to.
+ :param pulumi.Input[List[pulumi.Input[pulumi.InputType['ApplicationRequiredResourceAccessArgs']]]] required_resource_accesses: A collection of `required_resource_access` blocks as documented below.
:param pulumi.Input[str] type: Type of an application: `webapp/api` or `native`. Defaults to `webapp/api`. For `native` apps type `identifier_uris` property can not not be set.
-
- The **app_roles** object supports the following:
-
- * `allowedMemberTypes` (`pulumi.Input[list]`) - Specifies whether this app role definition can be assigned to users and groups by setting to `User`, or to other applications (that are accessing this application in daemon service scenarios) by setting to `Application`, or to both.
- * `description` (`pulumi.Input[str]`) - Permission help text that appears in the admin app assignment and consent experiences.
- * `display_name` (`pulumi.Input[str]`) - Display name for the permission that appears in the admin consent and app assignment experiences.
- * `id` (`pulumi.Input[str]`) - The unique identifier of the `app_role`.
- * `isEnabled` (`pulumi.Input[bool]`) - Determines if the permission is enabled: defaults to `true`.
- * `value` (`pulumi.Input[str]`) - The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
-
- The **oauth2_permissions** object supports the following:
-
- * `adminConsentDescription` (`pulumi.Input[str]`) - Permission help text that appears in the admin consent and app assignment experiences.
- * `adminConsentDisplayName` (`pulumi.Input[str]`) - Display name for the permission that appears in the admin consent and app assignment experiences.
- * `id` (`pulumi.Input[str]`) - The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
- * `isEnabled` (`pulumi.Input[bool]`) - Determines if the app role is enabled: Defaults to `true`.
- * `type` (`pulumi.Input[str]`) - Type of an application: `webapp/api` or `native`. Defaults to `webapp/api`. For `native` apps type `identifier_uris` property can not not be set.
- * `userConsentDescription` (`pulumi.Input[str]`) - Permission help text that appears in the end user consent experience.
- * `userConsentDisplayName` (`pulumi.Input[str]`) - Display name for the permission that appears in the end user consent experience.
- * `value` (`pulumi.Input[str]`) - Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
-
- The **optional_claims** object supports the following:
-
- * `accessTokens` (`pulumi.Input[list]`)
- * `additionalProperties` (`pulumi.Input[list]`) - List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
- * `essential` (`pulumi.Input[bool]`) - Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
- * `name` (`pulumi.Input[str]`) - The name of the optional claim.
- * `source` (`pulumi.Input[str]`) - The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
-
- * `idTokens` (`pulumi.Input[list]`)
- * `additionalProperties` (`pulumi.Input[list]`) - List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
- * `essential` (`pulumi.Input[bool]`) - Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
- * `name` (`pulumi.Input[str]`) - The display name for the application.
- * `source` (`pulumi.Input[str]`) - The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
-
- The **required_resource_accesses** object supports the following:
-
- * `resourceAccesses` (`pulumi.Input[list]`) - A collection of `resource_access` blocks as documented below.
- * `id` (`pulumi.Input[str]`) - The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
- * `type` (`pulumi.Input[str]`) - Specifies whether the id property references an `OAuth2Permission` or an `AppRole`. Possible values are `Scope` or `Role`.
-
- * `resourceAppId` (`pulumi.Input[str]`) - The unique identifier for the resource that the application requires access to. This should be equal to the appId declared on the target resource application.
"""
if __name__ is not None:
warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning)
@@ -280,7 +157,7 @@ def __init__(__self__, resource_name, opts=None, app_roles=None, available_to_ot
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.version is None:
- opts.version = utilities.get_version()
+ opts.version = _utilities.get_version()
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
@@ -311,74 +188,52 @@ def __init__(__self__, resource_name, opts=None, app_roles=None, available_to_ot
opts)
@staticmethod
- def get(resource_name, id, opts=None, app_roles=None, application_id=None, available_to_other_tenants=None, group_membership_claims=None, homepage=None, identifier_uris=None, logout_url=None, name=None, oauth2_allow_implicit_flow=None, oauth2_permissions=None, object_id=None, optional_claims=None, owners=None, prevent_duplicate_names=None, public_client=None, reply_urls=None, required_resource_accesses=None, type=None):
+ def get(resource_name: str,
+ id: pulumi.Input[str],
+ opts: Optional[pulumi.ResourceOptions] = None,
+ app_roles: Optional[pulumi.Input[List[pulumi.Input[pulumi.InputType['ApplicationAppRoleArgs']]]]] = None,
+ application_id: Optional[pulumi.Input[str]] = None,
+ available_to_other_tenants: Optional[pulumi.Input[bool]] = None,
+ group_membership_claims: Optional[pulumi.Input[str]] = None,
+ homepage: Optional[pulumi.Input[str]] = None,
+ identifier_uris: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ logout_url: Optional[pulumi.Input[str]] = None,
+ name: Optional[pulumi.Input[str]] = None,
+ oauth2_allow_implicit_flow: Optional[pulumi.Input[bool]] = None,
+ oauth2_permissions: Optional[pulumi.Input[List[pulumi.Input[pulumi.InputType['ApplicationOauth2PermissionArgs']]]]] = None,
+ object_id: Optional[pulumi.Input[str]] = None,
+ optional_claims: Optional[pulumi.Input[pulumi.InputType['ApplicationOptionalClaimsArgs']]] = None,
+ owners: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ prevent_duplicate_names: Optional[pulumi.Input[bool]] = None,
+ public_client: Optional[pulumi.Input[bool]] = None,
+ reply_urls: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ required_resource_accesses: Optional[pulumi.Input[List[pulumi.Input[pulumi.InputType['ApplicationRequiredResourceAccessArgs']]]]] = None,
+ type: Optional[pulumi.Input[str]] = None) -> 'Application':
"""
Get an existing Application resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
- :param str id: The unique provider ID of the resource to lookup.
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
- :param pulumi.Input[list] app_roles: A collection of `app_role` blocks as documented below. For more information https://docs.microsoft.com/en-us/azure/architecture/multitenant-identity/app-roles
+ :param pulumi.Input[List[pulumi.Input[pulumi.InputType['ApplicationAppRoleArgs']]]] app_roles: A collection of `app_role` blocks as documented below. For more information https://docs.microsoft.com/en-us/azure/architecture/multitenant-identity/app-roles
:param pulumi.Input[str] application_id: The Application ID.
:param pulumi.Input[bool] available_to_other_tenants: Is this Azure AD Application available to other tenants? Defaults to `false`.
:param pulumi.Input[str] group_membership_claims: Configures the `groups` claim issued in a user or OAuth 2.0 access token that the app expects. Defaults to `SecurityGroup`. Possible values are `None`, `SecurityGroup`, `DirectoryRole`, `ApplicationGroup` or `All`.
:param pulumi.Input[str] homepage: The URL to the application's home page. If no homepage is specified this defaults to `https://{name}`.
- :param pulumi.Input[list] identifier_uris: A list of user-defined URI(s) that uniquely identify a Web application within it's Azure AD tenant, or within a verified custom domain if the application is multi-tenant.
+ :param pulumi.Input[List[pulumi.Input[str]]] identifier_uris: A list of user-defined URI(s) that uniquely identify a Web application within it's Azure AD tenant, or within a verified custom domain if the application is multi-tenant.
:param pulumi.Input[str] logout_url: The URL of the logout page.
:param pulumi.Input[str] name: The display name for the application.
:param pulumi.Input[bool] oauth2_allow_implicit_flow: Does this Azure AD Application allow OAuth2.0 implicit flow tokens? Defaults to `false`.
- :param pulumi.Input[list] oauth2_permissions: A collection of OAuth 2.0 permission scopes that the web API (resource) app exposes to client apps. Each permission is covered by `oauth2_permissions` blocks as documented below.
+ :param pulumi.Input[List[pulumi.Input[pulumi.InputType['ApplicationOauth2PermissionArgs']]]] oauth2_permissions: A collection of OAuth 2.0 permission scopes that the web API (resource) app exposes to client apps. Each permission is covered by `oauth2_permissions` blocks as documented below.
:param pulumi.Input[str] object_id: The Application's Object ID.
- :param pulumi.Input[dict] optional_claims: A collection of `access_token` or `id_token` blocks as documented below which list the optional claims configured for each token type. For more information see https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims
- :param pulumi.Input[list] owners: A list of Azure AD Object IDs that will be granted ownership of the application. Defaults to the Object ID of the caller creating the application. If a list is specified the caller Object ID will no longer be included unless explicitly added to the list.
+ :param pulumi.Input[pulumi.InputType['ApplicationOptionalClaimsArgs']] optional_claims: A collection of `access_token` or `id_token` blocks as documented below which list the optional claims configured for each token type. For more information see https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims
+ :param pulumi.Input[List[pulumi.Input[str]]] owners: A list of Azure AD Object IDs that will be granted ownership of the application. Defaults to the Object ID of the caller creating the application. If a list is specified the caller Object ID will no longer be included unless explicitly added to the list.
:param pulumi.Input[bool] prevent_duplicate_names: If `true`, will return an error when an existing Application is found with the same name. Defaults to `false`.
:param pulumi.Input[bool] public_client: Is this Azure AD Application a public client? Defaults to `false`.
- :param pulumi.Input[list] reply_urls: A list of URLs that user tokens are sent to for sign in, or the redirect URIs that OAuth 2.0 authorization codes and access tokens are sent to.
- :param pulumi.Input[list] required_resource_accesses: A collection of `required_resource_access` blocks as documented below.
+ :param pulumi.Input[List[pulumi.Input[str]]] reply_urls: A list of URLs that user tokens are sent to for sign in, or the redirect URIs that OAuth 2.0 authorization codes and access tokens are sent to.
+ :param pulumi.Input[List[pulumi.Input[pulumi.InputType['ApplicationRequiredResourceAccessArgs']]]] required_resource_accesses: A collection of `required_resource_access` blocks as documented below.
:param pulumi.Input[str] type: Type of an application: `webapp/api` or `native`. Defaults to `webapp/api`. For `native` apps type `identifier_uris` property can not not be set.
-
- The **app_roles** object supports the following:
-
- * `allowedMemberTypes` (`pulumi.Input[list]`) - Specifies whether this app role definition can be assigned to users and groups by setting to `User`, or to other applications (that are accessing this application in daemon service scenarios) by setting to `Application`, or to both.
- * `description` (`pulumi.Input[str]`) - Permission help text that appears in the admin app assignment and consent experiences.
- * `display_name` (`pulumi.Input[str]`) - Display name for the permission that appears in the admin consent and app assignment experiences.
- * `id` (`pulumi.Input[str]`) - The unique identifier of the `app_role`.
- * `isEnabled` (`pulumi.Input[bool]`) - Determines if the permission is enabled: defaults to `true`.
- * `value` (`pulumi.Input[str]`) - The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
-
- The **oauth2_permissions** object supports the following:
-
- * `adminConsentDescription` (`pulumi.Input[str]`) - Permission help text that appears in the admin consent and app assignment experiences.
- * `adminConsentDisplayName` (`pulumi.Input[str]`) - Display name for the permission that appears in the admin consent and app assignment experiences.
- * `id` (`pulumi.Input[str]`) - The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
- * `isEnabled` (`pulumi.Input[bool]`) - Determines if the app role is enabled: Defaults to `true`.
- * `type` (`pulumi.Input[str]`) - Type of an application: `webapp/api` or `native`. Defaults to `webapp/api`. For `native` apps type `identifier_uris` property can not not be set.
- * `userConsentDescription` (`pulumi.Input[str]`) - Permission help text that appears in the end user consent experience.
- * `userConsentDisplayName` (`pulumi.Input[str]`) - Display name for the permission that appears in the end user consent experience.
- * `value` (`pulumi.Input[str]`) - Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
-
- The **optional_claims** object supports the following:
-
- * `accessTokens` (`pulumi.Input[list]`)
- * `additionalProperties` (`pulumi.Input[list]`) - List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
- * `essential` (`pulumi.Input[bool]`) - Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
- * `name` (`pulumi.Input[str]`) - The name of the optional claim.
- * `source` (`pulumi.Input[str]`) - The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
-
- * `idTokens` (`pulumi.Input[list]`)
- * `additionalProperties` (`pulumi.Input[list]`) - List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
- * `essential` (`pulumi.Input[bool]`) - Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
- * `name` (`pulumi.Input[str]`) - The display name for the application.
- * `source` (`pulumi.Input[str]`) - The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
-
- The **required_resource_accesses** object supports the following:
-
- * `resourceAccesses` (`pulumi.Input[list]`) - A collection of `resource_access` blocks as documented below.
- * `id` (`pulumi.Input[str]`) - The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
- * `type` (`pulumi.Input[str]`) - Specifies whether the id property references an `OAuth2Permission` or an `AppRole`. Possible values are `Scope` or `Role`.
-
- * `resourceAppId` (`pulumi.Input[str]`) - The unique identifier for the resource that the application requires access to. This should be equal to the appId declared on the target resource application.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -404,8 +259,153 @@ def get(resource_name, id, opts=None, app_roles=None, application_id=None, avail
__props__["type"] = type
return Application(resource_name, opts=opts, __props__=__props__)
+ @property
+ @pulumi.getter(name="appRoles")
+ def app_roles(self) -> Optional[List['outputs.ApplicationAppRole']]:
+ """
+ A collection of `app_role` blocks as documented below. For more information https://docs.microsoft.com/en-us/azure/architecture/multitenant-identity/app-roles
+ """
+ return pulumi.get(self, "app_roles")
+
+ @property
+ @pulumi.getter(name="applicationId")
+ def application_id(self) -> str:
+ """
+ The Application ID.
+ """
+ return pulumi.get(self, "application_id")
+
+ @property
+ @pulumi.getter(name="availableToOtherTenants")
+ def available_to_other_tenants(self) -> Optional[bool]:
+ """
+ Is this Azure AD Application available to other tenants? Defaults to `false`.
+ """
+ return pulumi.get(self, "available_to_other_tenants")
+
+ @property
+ @pulumi.getter(name="groupMembershipClaims")
+ def group_membership_claims(self) -> Optional[str]:
+ """
+ Configures the `groups` claim issued in a user or OAuth 2.0 access token that the app expects. Defaults to `SecurityGroup`. Possible values are `None`, `SecurityGroup`, `DirectoryRole`, `ApplicationGroup` or `All`.
+ """
+ return pulumi.get(self, "group_membership_claims")
+
+ @property
+ @pulumi.getter
+ def homepage(self) -> str:
+ """
+ The URL to the application's home page. If no homepage is specified this defaults to `https://{name}`.
+ """
+ return pulumi.get(self, "homepage")
+
+ @property
+ @pulumi.getter(name="identifierUris")
+ def identifier_uris(self) -> List[str]:
+ """
+ A list of user-defined URI(s) that uniquely identify a Web application within it's Azure AD tenant, or within a verified custom domain if the application is multi-tenant.
+ """
+ return pulumi.get(self, "identifier_uris")
+
+ @property
+ @pulumi.getter(name="logoutUrl")
+ def logout_url(self) -> Optional[str]:
+ """
+ The URL of the logout page.
+ """
+ return pulumi.get(self, "logout_url")
+
+ @property
+ @pulumi.getter
+ def name(self) -> str:
+ """
+ The display name for the application.
+ """
+ return pulumi.get(self, "name")
+
+ @property
+ @pulumi.getter(name="oauth2AllowImplicitFlow")
+ def oauth2_allow_implicit_flow(self) -> Optional[bool]:
+ """
+ Does this Azure AD Application allow OAuth2.0 implicit flow tokens? Defaults to `false`.
+ """
+ return pulumi.get(self, "oauth2_allow_implicit_flow")
+
+ @property
+ @pulumi.getter(name="oauth2Permissions")
+ def oauth2_permissions(self) -> List['outputs.ApplicationOauth2Permission']:
+ """
+ A collection of OAuth 2.0 permission scopes that the web API (resource) app exposes to client apps. Each permission is covered by `oauth2_permissions` blocks as documented below.
+ """
+ return pulumi.get(self, "oauth2_permissions")
+
+ @property
+ @pulumi.getter(name="objectId")
+ def object_id(self) -> str:
+ """
+ The Application's Object ID.
+ """
+ return pulumi.get(self, "object_id")
+
+ @property
+ @pulumi.getter(name="optionalClaims")
+ def optional_claims(self) -> Optional['outputs.ApplicationOptionalClaims']:
+ """
+ A collection of `access_token` or `id_token` blocks as documented below which list the optional claims configured for each token type. For more information see https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims
+ """
+ return pulumi.get(self, "optional_claims")
+
+ @property
+ @pulumi.getter
+ def owners(self) -> List[str]:
+ """
+ A list of Azure AD Object IDs that will be granted ownership of the application. Defaults to the Object ID of the caller creating the application. If a list is specified the caller Object ID will no longer be included unless explicitly added to the list.
+ """
+ return pulumi.get(self, "owners")
+
+ @property
+ @pulumi.getter(name="preventDuplicateNames")
+ def prevent_duplicate_names(self) -> Optional[bool]:
+ """
+ If `true`, will return an error when an existing Application is found with the same name. Defaults to `false`.
+ """
+ return pulumi.get(self, "prevent_duplicate_names")
+
+ @property
+ @pulumi.getter(name="publicClient")
+ def public_client(self) -> bool:
+ """
+ Is this Azure AD Application a public client? Defaults to `false`.
+ """
+ return pulumi.get(self, "public_client")
+
+ @property
+ @pulumi.getter(name="replyUrls")
+ def reply_urls(self) -> List[str]:
+ """
+ A list of URLs that user tokens are sent to for sign in, or the redirect URIs that OAuth 2.0 authorization codes and access tokens are sent to.
+ """
+ return pulumi.get(self, "reply_urls")
+
+ @property
+ @pulumi.getter(name="requiredResourceAccesses")
+ def required_resource_accesses(self) -> Optional[List['outputs.ApplicationRequiredResourceAccess']]:
+ """
+ A collection of `required_resource_access` blocks as documented below.
+ """
+ return pulumi.get(self, "required_resource_accesses")
+
+ @property
+ @pulumi.getter
+ def type(self) -> Optional[str]:
+ """
+ Type of an application: `webapp/api` or `native`. Defaults to `webapp/api`. For `native` apps type `identifier_uris` property can not not be set.
+ """
+ return pulumi.get(self, "type")
+
def translate_output_property(self, prop):
- return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
def translate_input_property(self, prop):
- return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+ return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+
diff --git a/sdk/python/pulumi_azuread/application_certificate.py b/sdk/python/pulumi_azuread/application_certificate.py
index b711e9b63..52c37cef0 100644
--- a/sdk/python/pulumi_azuread/application_certificate.py
+++ b/sdk/python/pulumi_azuread/application_certificate.py
@@ -5,40 +5,26 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+
+__all__ = ['ApplicationCertificate']
class ApplicationCertificate(pulumi.CustomResource):
- application_object_id: pulumi.Output[str]
- """
- The Object ID of the Application for which this Certificate should be created. Changing this field forces a new resource to be created.
- """
- end_date: pulumi.Output[str]
- """
- The End Date which the Certificate is valid until, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). Changing this field forces a new resource to be created.
- """
- end_date_relative: pulumi.Output[str]
- """
- A relative duration for which the Certificate is valid until, for example `240h` (10 days) or `2400h30m`. Changing this field forces a new resource to be created.
- """
- key_id: pulumi.Output[str]
- """
- A GUID used to uniquely identify this Certificate. If not specified a GUID will be created. Changing this field forces a new resource to be created.
- """
- start_date: pulumi.Output[str]
- """
- The Start Date which the Certificate is valid from, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). If this isn't specified, the current date is used. Changing this field forces a new resource to be created.
- """
- type: pulumi.Output[str]
- """
- The type of key/certificate. Must be one of `AsymmetricX509Cert` or `Symmetric`. Changing this fields forces a new resource to be created.
- """
- value: pulumi.Output[str]
- """
- The Certificate for this Service Principal.
- """
- def __init__(__self__, resource_name, opts=None, application_object_id=None, end_date=None, end_date_relative=None, key_id=None, start_date=None, type=None, value=None, __props__=None, __name__=None, __opts__=None):
+ def __init__(__self__,
+ resource_name,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ application_object_id: Optional[pulumi.Input[str]] = None,
+ end_date: Optional[pulumi.Input[str]] = None,
+ end_date_relative: Optional[pulumi.Input[str]] = None,
+ key_id: Optional[pulumi.Input[str]] = None,
+ start_date: Optional[pulumi.Input[str]] = None,
+ type: Optional[pulumi.Input[str]] = None,
+ value: Optional[pulumi.Input[str]] = None,
+ __props__=None,
+ __name__=None,
+ __opts__=None):
"""
Manages a Certificate associated with an Application within Azure Active Directory.
@@ -79,7 +65,7 @@ def __init__(__self__, resource_name, opts=None, application_object_id=None, end
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.version is None:
- opts.version = utilities.get_version()
+ opts.version = _utilities.get_version()
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
@@ -103,13 +89,22 @@ def __init__(__self__, resource_name, opts=None, application_object_id=None, end
opts)
@staticmethod
- def get(resource_name, id, opts=None, application_object_id=None, end_date=None, end_date_relative=None, key_id=None, start_date=None, type=None, value=None):
+ def get(resource_name: str,
+ id: pulumi.Input[str],
+ opts: Optional[pulumi.ResourceOptions] = None,
+ application_object_id: Optional[pulumi.Input[str]] = None,
+ end_date: Optional[pulumi.Input[str]] = None,
+ end_date_relative: Optional[pulumi.Input[str]] = None,
+ key_id: Optional[pulumi.Input[str]] = None,
+ start_date: Optional[pulumi.Input[str]] = None,
+ type: Optional[pulumi.Input[str]] = None,
+ value: Optional[pulumi.Input[str]] = None) -> 'ApplicationCertificate':
"""
Get an existing ApplicationCertificate resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
- :param str id: The unique provider ID of the resource to lookup.
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[str] application_object_id: The Object ID of the Application for which this Certificate should be created. Changing this field forces a new resource to be created.
:param pulumi.Input[str] end_date: The End Date which the Certificate is valid until, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). Changing this field forces a new resource to be created.
@@ -132,8 +127,65 @@ def get(resource_name, id, opts=None, application_object_id=None, end_date=None,
__props__["value"] = value
return ApplicationCertificate(resource_name, opts=opts, __props__=__props__)
+ @property
+ @pulumi.getter(name="applicationObjectId")
+ def application_object_id(self) -> str:
+ """
+ The Object ID of the Application for which this Certificate should be created. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "application_object_id")
+
+ @property
+ @pulumi.getter(name="endDate")
+ def end_date(self) -> str:
+ """
+ The End Date which the Certificate is valid until, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "end_date")
+
+ @property
+ @pulumi.getter(name="endDateRelative")
+ def end_date_relative(self) -> Optional[str]:
+ """
+ A relative duration for which the Certificate is valid until, for example `240h` (10 days) or `2400h30m`. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "end_date_relative")
+
+ @property
+ @pulumi.getter(name="keyId")
+ def key_id(self) -> str:
+ """
+ A GUID used to uniquely identify this Certificate. If not specified a GUID will be created. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "key_id")
+
+ @property
+ @pulumi.getter(name="startDate")
+ def start_date(self) -> str:
+ """
+ The Start Date which the Certificate is valid from, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). If this isn't specified, the current date is used. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "start_date")
+
+ @property
+ @pulumi.getter
+ def type(self) -> Optional[str]:
+ """
+ The type of key/certificate. Must be one of `AsymmetricX509Cert` or `Symmetric`. Changing this fields forces a new resource to be created.
+ """
+ return pulumi.get(self, "type")
+
+ @property
+ @pulumi.getter
+ def value(self) -> str:
+ """
+ The Certificate for this Service Principal.
+ """
+ return pulumi.get(self, "value")
+
def translate_output_property(self, prop):
- return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
def translate_input_property(self, prop):
- return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+ return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+
diff --git a/sdk/python/pulumi_azuread/application_password.py b/sdk/python/pulumi_azuread/application_password.py
index 790bcb846..14ec1c4cd 100644
--- a/sdk/python/pulumi_azuread/application_password.py
+++ b/sdk/python/pulumi_azuread/application_password.py
@@ -5,41 +5,27 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+
+__all__ = ['ApplicationPassword']
class ApplicationPassword(pulumi.CustomResource):
- application_id: pulumi.Output[str]
- application_object_id: pulumi.Output[str]
- """
- The Object ID of the Application for which this password should be created. Changing this field forces a new resource to be created.
- """
- description: pulumi.Output[str]
- """
- A description for the Password.
- """
- end_date: pulumi.Output[str]
- """
- The End Date which the Password is valid until, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). Changing this field forces a new resource to be created.
- """
- end_date_relative: pulumi.Output[str]
- """
- A relative duration for which the Password is valid until, for example `240h` (10 days) or `2400h30m`. Changing this field forces a new resource to be created.
- """
- key_id: pulumi.Output[str]
- """
- A GUID used to uniquely identify this Password. If not specified a GUID will be created. Changing this field forces a new resource to be created.
- """
- start_date: pulumi.Output[str]
- """
- The Start Date which the Password is valid from, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). If this isn't specified, the current date is used. Changing this field forces a new resource to be created.
- """
- value: pulumi.Output[str]
- """
- The Password for this Application.
- """
- def __init__(__self__, resource_name, opts=None, application_id=None, application_object_id=None, description=None, end_date=None, end_date_relative=None, key_id=None, start_date=None, value=None, __props__=None, __name__=None, __opts__=None):
+ def __init__(__self__,
+ resource_name,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ application_id: Optional[pulumi.Input[str]] = None,
+ application_object_id: Optional[pulumi.Input[str]] = None,
+ description: Optional[pulumi.Input[str]] = None,
+ end_date: Optional[pulumi.Input[str]] = None,
+ end_date_relative: Optional[pulumi.Input[str]] = None,
+ key_id: Optional[pulumi.Input[str]] = None,
+ start_date: Optional[pulumi.Input[str]] = None,
+ value: Optional[pulumi.Input[str]] = None,
+ __props__=None,
+ __name__=None,
+ __opts__=None):
"""
Manages a Password associated with an Application within Azure Active Directory. Also can be referred to as Client secrets.
@@ -80,7 +66,7 @@ def __init__(__self__, resource_name, opts=None, application_id=None, applicatio
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.version is None:
- opts.version = utilities.get_version()
+ opts.version = _utilities.get_version()
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
@@ -106,13 +92,23 @@ def __init__(__self__, resource_name, opts=None, application_id=None, applicatio
opts)
@staticmethod
- def get(resource_name, id, opts=None, application_id=None, application_object_id=None, description=None, end_date=None, end_date_relative=None, key_id=None, start_date=None, value=None):
+ def get(resource_name: str,
+ id: pulumi.Input[str],
+ opts: Optional[pulumi.ResourceOptions] = None,
+ application_id: Optional[pulumi.Input[str]] = None,
+ application_object_id: Optional[pulumi.Input[str]] = None,
+ description: Optional[pulumi.Input[str]] = None,
+ end_date: Optional[pulumi.Input[str]] = None,
+ end_date_relative: Optional[pulumi.Input[str]] = None,
+ key_id: Optional[pulumi.Input[str]] = None,
+ start_date: Optional[pulumi.Input[str]] = None,
+ value: Optional[pulumi.Input[str]] = None) -> 'ApplicationPassword':
"""
Get an existing ApplicationPassword resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
- :param str id: The unique provider ID of the resource to lookup.
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[str] application_object_id: The Object ID of the Application for which this password should be created. Changing this field forces a new resource to be created.
:param pulumi.Input[str] description: A description for the Password.
@@ -136,8 +132,70 @@ def get(resource_name, id, opts=None, application_id=None, application_object_id
__props__["value"] = value
return ApplicationPassword(resource_name, opts=opts, __props__=__props__)
+ @property
+ @pulumi.getter(name="applicationId")
+ def application_id(self) -> str:
+ return pulumi.get(self, "application_id")
+
+ @property
+ @pulumi.getter(name="applicationObjectId")
+ def application_object_id(self) -> str:
+ """
+ The Object ID of the Application for which this password should be created. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "application_object_id")
+
+ @property
+ @pulumi.getter
+ def description(self) -> str:
+ """
+ A description for the Password.
+ """
+ return pulumi.get(self, "description")
+
+ @property
+ @pulumi.getter(name="endDate")
+ def end_date(self) -> str:
+ """
+ The End Date which the Password is valid until, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "end_date")
+
+ @property
+ @pulumi.getter(name="endDateRelative")
+ def end_date_relative(self) -> Optional[str]:
+ """
+ A relative duration for which the Password is valid until, for example `240h` (10 days) or `2400h30m`. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "end_date_relative")
+
+ @property
+ @pulumi.getter(name="keyId")
+ def key_id(self) -> str:
+ """
+ A GUID used to uniquely identify this Password. If not specified a GUID will be created. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "key_id")
+
+ @property
+ @pulumi.getter(name="startDate")
+ def start_date(self) -> str:
+ """
+ The Start Date which the Password is valid from, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). If this isn't specified, the current date is used. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "start_date")
+
+ @property
+ @pulumi.getter
+ def value(self) -> str:
+ """
+ The Password for this Application.
+ """
+ return pulumi.get(self, "value")
+
def translate_output_property(self, prop):
- return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
def translate_input_property(self, prop):
- return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+ return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+
diff --git a/sdk/python/pulumi_azuread/config/README.md b/sdk/python/pulumi_azuread/config/README.md
deleted file mode 100644
index 9dbaaceaa..000000000
--- a/sdk/python/pulumi_azuread/config/README.md
+++ /dev/null
@@ -1 +0,0 @@
-A Pulumi package for creating and managing azuread cloud resources.
diff --git a/sdk/python/pulumi_azuread/config/vars.py b/sdk/python/pulumi_azuread/config/vars.py
index 3bf10179b..1785328d3 100644
--- a/sdk/python/pulumi_azuread/config/vars.py
+++ b/sdk/python/pulumi_azuread/config/vars.py
@@ -5,26 +5,38 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from .. import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from .. import _utilities, _tables
+
+__all__ = [
+ 'client_certificate_password',
+ 'client_certificate_path',
+ 'client_id',
+ 'client_secret',
+ 'environment',
+ 'msi_endpoint',
+ 'subscription_id',
+ 'tenant_id',
+ 'use_msi',
+]
__config__ = pulumi.Config('azuread')
-client_certificate_password = __config__.get('clientCertificatePassword') or (utilities.get_env('ARM_CLIENT_CERTIFICATE_PASSWORD') or '')
+client_certificate_password = __config__.get('clientCertificatePassword') or (_utilities.get_env('ARM_CLIENT_CERTIFICATE_PASSWORD') or '')
-client_certificate_path = __config__.get('clientCertificatePath') or (utilities.get_env('ARM_CLIENT_CERTIFICATE_PATH') or '')
+client_certificate_path = __config__.get('clientCertificatePath') or (_utilities.get_env('ARM_CLIENT_CERTIFICATE_PATH') or '')
-client_id = __config__.get('clientId') or (utilities.get_env('ARM_CLIENT_ID') or '')
+client_id = __config__.get('clientId') or (_utilities.get_env('ARM_CLIENT_ID') or '')
-client_secret = __config__.get('clientSecret') or (utilities.get_env('ARM_CLIENT_SECRET') or '')
+client_secret = __config__.get('clientSecret') or (_utilities.get_env('ARM_CLIENT_SECRET') or '')
-environment = __config__.get('environment') or (utilities.get_env('ARM_ENVIRONMENT') or 'public')
+environment = __config__.get('environment') or (_utilities.get_env('ARM_ENVIRONMENT') or 'public')
-msi_endpoint = __config__.get('msiEndpoint') or (utilities.get_env('ARM_MSI_ENDPOINT') or '')
+msi_endpoint = __config__.get('msiEndpoint') or (_utilities.get_env('ARM_MSI_ENDPOINT') or '')
-subscription_id = __config__.get('subscriptionId') or (utilities.get_env('ARM_SUBSCRIPTION_ID') or '')
+subscription_id = __config__.get('subscriptionId') or (_utilities.get_env('ARM_SUBSCRIPTION_ID') or '')
-tenant_id = __config__.get('tenantId') or (utilities.get_env('ARM_TENANT_ID') or '')
+tenant_id = __config__.get('tenantId') or (_utilities.get_env('ARM_TENANT_ID') or '')
-use_msi = __config__.get('useMsi') or (utilities.get_env_bool('ARM_USE_MSI') or False)
+use_msi = __config__.get('useMsi') or (_utilities.get_env_bool('ARM_USE_MSI') or False)
diff --git a/sdk/python/pulumi_azuread/get_application.py b/sdk/python/pulumi_azuread/get_application.py
index 303e08ec4..b45fbaea5 100644
--- a/sdk/python/pulumi_azuread/get_application.py
+++ b/sdk/python/pulumi_azuread/get_application.py
@@ -5,9 +5,18 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+from . import outputs
+from ._inputs import *
+__all__ = [
+ 'GetApplicationResult',
+ 'AwaitableGetApplicationResult',
+ 'get_application',
+]
+
+@pulumi.output_type
class GetApplicationResult:
"""
A collection of values returned by getApplication.
@@ -15,103 +24,190 @@ class GetApplicationResult:
def __init__(__self__, app_roles=None, application_id=None, available_to_other_tenants=None, group_membership_claims=None, homepage=None, id=None, identifier_uris=None, logout_url=None, name=None, oauth2_allow_implicit_flow=None, oauth2_permissions=None, object_id=None, optional_claims=None, owners=None, reply_urls=None, required_resource_accesses=None, type=None):
if app_roles and not isinstance(app_roles, list):
raise TypeError("Expected argument 'app_roles' to be a list")
- __self__.app_roles = app_roles
+ pulumi.set(__self__, "app_roles", app_roles)
+ if application_id and not isinstance(application_id, str):
+ raise TypeError("Expected argument 'application_id' to be a str")
+ pulumi.set(__self__, "application_id", application_id)
+ if available_to_other_tenants and not isinstance(available_to_other_tenants, bool):
+ raise TypeError("Expected argument 'available_to_other_tenants' to be a bool")
+ pulumi.set(__self__, "available_to_other_tenants", available_to_other_tenants)
+ if group_membership_claims and not isinstance(group_membership_claims, str):
+ raise TypeError("Expected argument 'group_membership_claims' to be a str")
+ pulumi.set(__self__, "group_membership_claims", group_membership_claims)
+ if homepage and not isinstance(homepage, str):
+ raise TypeError("Expected argument 'homepage' to be a str")
+ pulumi.set(__self__, "homepage", homepage)
+ if id and not isinstance(id, str):
+ raise TypeError("Expected argument 'id' to be a str")
+ pulumi.set(__self__, "id", id)
+ if identifier_uris and not isinstance(identifier_uris, list):
+ raise TypeError("Expected argument 'identifier_uris' to be a list")
+ pulumi.set(__self__, "identifier_uris", identifier_uris)
+ if logout_url and not isinstance(logout_url, str):
+ raise TypeError("Expected argument 'logout_url' to be a str")
+ pulumi.set(__self__, "logout_url", logout_url)
+ if name and not isinstance(name, str):
+ raise TypeError("Expected argument 'name' to be a str")
+ pulumi.set(__self__, "name", name)
+ if oauth2_allow_implicit_flow and not isinstance(oauth2_allow_implicit_flow, bool):
+ raise TypeError("Expected argument 'oauth2_allow_implicit_flow' to be a bool")
+ pulumi.set(__self__, "oauth2_allow_implicit_flow", oauth2_allow_implicit_flow)
+ if oauth2_permissions and not isinstance(oauth2_permissions, list):
+ raise TypeError("Expected argument 'oauth2_permissions' to be a list")
+ pulumi.set(__self__, "oauth2_permissions", oauth2_permissions)
+ if object_id and not isinstance(object_id, str):
+ raise TypeError("Expected argument 'object_id' to be a str")
+ pulumi.set(__self__, "object_id", object_id)
+ if optional_claims and not isinstance(optional_claims, dict):
+ raise TypeError("Expected argument 'optional_claims' to be a dict")
+ pulumi.set(__self__, "optional_claims", optional_claims)
+ if owners and not isinstance(owners, list):
+ raise TypeError("Expected argument 'owners' to be a list")
+ pulumi.set(__self__, "owners", owners)
+ if reply_urls and not isinstance(reply_urls, list):
+ raise TypeError("Expected argument 'reply_urls' to be a list")
+ pulumi.set(__self__, "reply_urls", reply_urls)
+ if required_resource_accesses and not isinstance(required_resource_accesses, list):
+ raise TypeError("Expected argument 'required_resource_accesses' to be a list")
+ pulumi.set(__self__, "required_resource_accesses", required_resource_accesses)
+ if type and not isinstance(type, str):
+ raise TypeError("Expected argument 'type' to be a str")
+ pulumi.set(__self__, "type", type)
+
+ @property
+ @pulumi.getter(name="appRoles")
+ def app_roles(self) -> List['outputs.GetApplicationAppRoleResult']:
"""
A collection of `app_role` blocks as documented below. For more information https://docs.microsoft.com/en-us/azure/architecture/multitenant-identity/app-roles
"""
- if application_id and not isinstance(application_id, str):
- raise TypeError("Expected argument 'application_id' to be a str")
- __self__.application_id = application_id
+ return pulumi.get(self, "app_roles")
+
+ @property
+ @pulumi.getter(name="applicationId")
+ def application_id(self) -> str:
"""
the Application ID of the Azure Active Directory Application.
"""
- if available_to_other_tenants and not isinstance(available_to_other_tenants, bool):
- raise TypeError("Expected argument 'available_to_other_tenants' to be a bool")
- __self__.available_to_other_tenants = available_to_other_tenants
+ return pulumi.get(self, "application_id")
+
+ @property
+ @pulumi.getter(name="availableToOtherTenants")
+ def available_to_other_tenants(self) -> bool:
"""
Is this Azure AD Application available to other tenants?
"""
- if group_membership_claims and not isinstance(group_membership_claims, str):
- raise TypeError("Expected argument 'group_membership_claims' to be a str")
- __self__.group_membership_claims = group_membership_claims
+ return pulumi.get(self, "available_to_other_tenants")
+
+ @property
+ @pulumi.getter(name="groupMembershipClaims")
+ def group_membership_claims(self) -> str:
"""
The `groups` claim issued in a user or OAuth 2.0 access token that the app expects.
"""
- if homepage and not isinstance(homepage, str):
- raise TypeError("Expected argument 'homepage' to be a str")
- __self__.homepage = homepage
- if id and not isinstance(id, str):
- raise TypeError("Expected argument 'id' to be a str")
- __self__.id = id
+ return pulumi.get(self, "group_membership_claims")
+
+ @property
+ @pulumi.getter
+ def homepage(self) -> str:
+ return pulumi.get(self, "homepage")
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
"""
The provider-assigned unique ID for this managed resource.
"""
- if identifier_uris and not isinstance(identifier_uris, list):
- raise TypeError("Expected argument 'identifier_uris' to be a list")
- __self__.identifier_uris = identifier_uris
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter(name="identifierUris")
+ def identifier_uris(self) -> List[str]:
"""
A list of user-defined URI(s) that uniquely identify a Web application within it's Azure AD tenant, or within a verified custom domain if the application is multi-tenant.
"""
- if logout_url and not isinstance(logout_url, str):
- raise TypeError("Expected argument 'logout_url' to be a str")
- __self__.logout_url = logout_url
+ return pulumi.get(self, "identifier_uris")
+
+ @property
+ @pulumi.getter(name="logoutUrl")
+ def logout_url(self) -> str:
"""
The URL of the logout page.
"""
- if name and not isinstance(name, str):
- raise TypeError("Expected argument 'name' to be a str")
- __self__.name = name
+ return pulumi.get(self, "logout_url")
+
+ @property
+ @pulumi.getter
+ def name(self) -> str:
"""
The name of the optional claim.
"""
- if oauth2_allow_implicit_flow and not isinstance(oauth2_allow_implicit_flow, bool):
- raise TypeError("Expected argument 'oauth2_allow_implicit_flow' to be a bool")
- __self__.oauth2_allow_implicit_flow = oauth2_allow_implicit_flow
+ return pulumi.get(self, "name")
+
+ @property
+ @pulumi.getter(name="oauth2AllowImplicitFlow")
+ def oauth2_allow_implicit_flow(self) -> bool:
"""
Does this Azure AD Application allow OAuth2.0 implicit flow tokens?
"""
- if oauth2_permissions and not isinstance(oauth2_permissions, list):
- raise TypeError("Expected argument 'oauth2_permissions' to be a list")
- __self__.oauth2_permissions = oauth2_permissions
+ return pulumi.get(self, "oauth2_allow_implicit_flow")
+
+ @property
+ @pulumi.getter(name="oauth2Permissions")
+ def oauth2_permissions(self) -> List['outputs.GetApplicationOauth2PermissionResult']:
"""
A collection of OAuth 2.0 permission scopes that the web API (resource) app exposes to client apps. Each permission is covered by a `oauth2_permission` block as documented below.
"""
- if object_id and not isinstance(object_id, str):
- raise TypeError("Expected argument 'object_id' to be a str")
- __self__.object_id = object_id
+ return pulumi.get(self, "oauth2_permissions")
+
+ @property
+ @pulumi.getter(name="objectId")
+ def object_id(self) -> str:
"""
the Object ID of the Azure Active Directory Application.
"""
- if optional_claims and not isinstance(optional_claims, dict):
- raise TypeError("Expected argument 'optional_claims' to be a dict")
- __self__.optional_claims = optional_claims
+ return pulumi.get(self, "object_id")
+
+ @property
+ @pulumi.getter(name="optionalClaims")
+ def optional_claims(self) -> Optional['outputs.GetApplicationOptionalClaimsResult']:
"""
A collection of `access_token` or `id_token` blocks as documented below which list the optional claims configured for each token type. For more information see https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims
"""
- if owners and not isinstance(owners, list):
- raise TypeError("Expected argument 'owners' to be a list")
- __self__.owners = owners
+ return pulumi.get(self, "optional_claims")
+
+ @property
+ @pulumi.getter
+ def owners(self) -> List[str]:
"""
A list of User Object IDs that are assigned ownership of the application registration.
"""
- if reply_urls and not isinstance(reply_urls, list):
- raise TypeError("Expected argument 'reply_urls' to be a list")
- __self__.reply_urls = reply_urls
+ return pulumi.get(self, "owners")
+
+ @property
+ @pulumi.getter(name="replyUrls")
+ def reply_urls(self) -> List[str]:
"""
A list of URLs that user tokens are sent to for sign in, or the redirect URIs that OAuth 2.0 authorization codes and access tokens are sent to.
"""
- if required_resource_accesses and not isinstance(required_resource_accesses, list):
- raise TypeError("Expected argument 'required_resource_accesses' to be a list")
- __self__.required_resource_accesses = required_resource_accesses
+ return pulumi.get(self, "reply_urls")
+
+ @property
+ @pulumi.getter(name="requiredResourceAccesses")
+ def required_resource_accesses(self) -> List['outputs.GetApplicationRequiredResourceAccessResult']:
"""
A collection of `required_resource_access` blocks as documented below.
"""
- if type and not isinstance(type, str):
- raise TypeError("Expected argument 'type' to be a str")
- __self__.type = type
+ return pulumi.get(self, "required_resource_accesses")
+
+ @property
+ @pulumi.getter
+ def type(self) -> str:
"""
The type of the permission
"""
+ return pulumi.get(self, "type")
+
+
class AwaitableGetApplicationResult(GetApplicationResult):
# pylint: disable=using-constant-test
def __await__(self):
@@ -136,7 +232,13 @@ def __await__(self):
required_resource_accesses=self.required_resource_accesses,
type=self.type)
-def get_application(application_id=None,name=None,oauth2_permissions=None,object_id=None,optional_claims=None,opts=None):
+
+def get_application(application_id: Optional[str] = None,
+ name: Optional[str] = None,
+ oauth2_permissions: Optional[List[pulumi.InputType['GetApplicationOauth2PermissionArgs']]] = None,
+ object_id: Optional[str] = None,
+ optional_claims: Optional[pulumi.InputType['GetApplicationOptionalClaimsArgs']] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetApplicationResult:
"""
Use this data source to access information about an existing Application within Azure Active Directory.
@@ -155,38 +257,11 @@ def get_application(application_id=None,name=None,oauth2_permissions=None,object
:param str application_id: Specifies the Application ID of the Azure Active Directory Application.
:param str name: Specifies the name of the Application within Azure Active Directory.
- :param list oauth2_permissions: A collection of OAuth 2.0 permission scopes that the web API (resource) app exposes to client apps. Each permission is covered by a `oauth2_permission` block as documented below.
+ :param List[pulumi.InputType['GetApplicationOauth2PermissionArgs']] oauth2_permissions: A collection of OAuth 2.0 permission scopes that the web API (resource) app exposes to client apps. Each permission is covered by a `oauth2_permission` block as documented below.
:param str object_id: Specifies the Object ID of the Application within Azure Active Directory.
- :param dict optional_claims: A collection of `access_token` or `id_token` blocks as documented below which list the optional claims configured for each token type. For more information see https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims
-
- The **oauth2_permissions** object supports the following:
-
- * `adminConsentDescription` (`str`) - The description of the admin consent
- * `adminConsentDisplayName` (`str`) - The display name of the admin consent
- * `id` (`str`) - The unique identifier of the `app_role`.
- * `isEnabled` (`bool`) - Determines if the app role is enabled.
- * `type` (`str`) - The type of the permission
- * `userConsentDescription` (`str`) - The description of the user consent
- * `userConsentDisplayName` (`str`) - The display name of the user consent
- * `value` (`str`) - Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
-
- The **optional_claims** object supports the following:
-
- * `accessTokens` (`list`)
- * `additionalProperties` (`list`) - List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
- * `essential` (`bool`) - Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
- * `name` (`str`) - Specifies the name of the Application within Azure Active Directory.
- * `source` (`str`) - The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
-
- * `idTokens` (`list`)
- * `additionalProperties` (`list`) - List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
- * `essential` (`bool`) - Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
- * `name` (`str`) - Specifies the name of the Application within Azure Active Directory.
- * `source` (`str`) - The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ :param pulumi.InputType['GetApplicationOptionalClaimsArgs'] optional_claims: A collection of `access_token` or `id_token` blocks as documented below which list the optional claims configured for each token type. For more information see https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims
"""
__args__ = dict()
-
-
__args__['applicationId'] = application_id
__args__['name'] = name
__args__['oauth2Permissions'] = oauth2_permissions
@@ -195,24 +270,24 @@ def get_application(application_id=None,name=None,oauth2_permissions=None,object
if opts is None:
opts = pulumi.InvokeOptions()
if opts.version is None:
- opts.version = utilities.get_version()
- __ret__ = pulumi.runtime.invoke('azuread:index/getApplication:getApplication', __args__, opts=opts).value
+ opts.version = _utilities.get_version()
+ __ret__ = pulumi.runtime.invoke('azuread:index/getApplication:getApplication', __args__, opts=opts, typ=GetApplicationResult).value
return AwaitableGetApplicationResult(
- app_roles=__ret__.get('appRoles'),
- application_id=__ret__.get('applicationId'),
- available_to_other_tenants=__ret__.get('availableToOtherTenants'),
- group_membership_claims=__ret__.get('groupMembershipClaims'),
- homepage=__ret__.get('homepage'),
- id=__ret__.get('id'),
- identifier_uris=__ret__.get('identifierUris'),
- logout_url=__ret__.get('logoutUrl'),
- name=__ret__.get('name'),
- oauth2_allow_implicit_flow=__ret__.get('oauth2AllowImplicitFlow'),
- oauth2_permissions=__ret__.get('oauth2Permissions'),
- object_id=__ret__.get('objectId'),
- optional_claims=__ret__.get('optionalClaims'),
- owners=__ret__.get('owners'),
- reply_urls=__ret__.get('replyUrls'),
- required_resource_accesses=__ret__.get('requiredResourceAccesses'),
- type=__ret__.get('type'))
+ app_roles=__ret__.app_roles,
+ application_id=__ret__.application_id,
+ available_to_other_tenants=__ret__.available_to_other_tenants,
+ group_membership_claims=__ret__.group_membership_claims,
+ homepage=__ret__.homepage,
+ id=__ret__.id,
+ identifier_uris=__ret__.identifier_uris,
+ logout_url=__ret__.logout_url,
+ name=__ret__.name,
+ oauth2_allow_implicit_flow=__ret__.oauth2_allow_implicit_flow,
+ oauth2_permissions=__ret__.oauth2_permissions,
+ object_id=__ret__.object_id,
+ optional_claims=__ret__.optional_claims,
+ owners=__ret__.owners,
+ reply_urls=__ret__.reply_urls,
+ required_resource_accesses=__ret__.required_resource_accesses,
+ type=__ret__.type)
diff --git a/sdk/python/pulumi_azuread/get_client_config.py b/sdk/python/pulumi_azuread/get_client_config.py
index da6fb63b2..ca4644148 100644
--- a/sdk/python/pulumi_azuread/get_client_config.py
+++ b/sdk/python/pulumi_azuread/get_client_config.py
@@ -5,9 +5,16 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+__all__ = [
+ 'GetClientConfigResult',
+ 'AwaitableGetClientConfigResult',
+ 'get_client_config',
+]
+
+@pulumi.output_type
class GetClientConfigResult:
"""
A collection of values returned by getClientConfig.
@@ -15,26 +22,53 @@ class GetClientConfigResult:
def __init__(__self__, client_id=None, id=None, object_id=None, subscription_id=None, tenant_id=None):
if client_id and not isinstance(client_id, str):
raise TypeError("Expected argument 'client_id' to be a str")
- __self__.client_id = client_id
+ pulumi.set(__self__, "client_id", client_id)
if id and not isinstance(id, str):
raise TypeError("Expected argument 'id' to be a str")
- __self__.id = id
- """
- The provider-assigned unique ID for this managed resource.
- """
+ pulumi.set(__self__, "id", id)
if object_id and not isinstance(object_id, str):
raise TypeError("Expected argument 'object_id' to be a str")
- __self__.object_id = object_id
+ pulumi.set(__self__, "object_id", object_id)
if subscription_id and not isinstance(subscription_id, str):
raise TypeError("Expected argument 'subscription_id' to be a str")
if subscription_id is not None:
warnings.warn("The \"subscription_id\" attribute will be removed in version 1.0 of the provider. If you are using this attribute, you should instead use the \"azurerm_client_config\" data source from the AzureRM provider", DeprecationWarning)
pulumi.log.warn("subscription_id is deprecated: The \"subscription_id\" attribute will be removed in version 1.0 of the provider. If you are using this attribute, you should instead use the \"azurerm_client_config\" data source from the AzureRM provider")
- __self__.subscription_id = subscription_id
+ pulumi.set(__self__, "subscription_id", subscription_id)
if tenant_id and not isinstance(tenant_id, str):
raise TypeError("Expected argument 'tenant_id' to be a str")
- __self__.tenant_id = tenant_id
+ pulumi.set(__self__, "tenant_id", tenant_id)
+
+ @property
+ @pulumi.getter(name="clientId")
+ def client_id(self) -> str:
+ return pulumi.get(self, "client_id")
+
+ @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="objectId")
+ def object_id(self) -> str:
+ return pulumi.get(self, "object_id")
+
+ @property
+ @pulumi.getter(name="subscriptionId")
+ def subscription_id(self) -> str:
+ return pulumi.get(self, "subscription_id")
+
+ @property
+ @pulumi.getter(name="tenantId")
+ def tenant_id(self) -> str:
+ return pulumi.get(self, "tenant_id")
+
+
class AwaitableGetClientConfigResult(GetClientConfigResult):
# pylint: disable=using-constant-test
def __await__(self):
@@ -47,7 +81,8 @@ def __await__(self):
subscription_id=self.subscription_id,
tenant_id=self.tenant_id)
-def get_client_config(opts=None):
+
+def get_client_config(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetClientConfigResult:
"""
Use this data source to access the configuration of the AzureRM provider.
@@ -62,17 +97,15 @@ def get_client_config(opts=None):
```
"""
__args__ = dict()
-
-
if opts is None:
opts = pulumi.InvokeOptions()
if opts.version is None:
- opts.version = utilities.get_version()
- __ret__ = pulumi.runtime.invoke('azuread:index/getClientConfig:getClientConfig', __args__, opts=opts).value
+ opts.version = _utilities.get_version()
+ __ret__ = pulumi.runtime.invoke('azuread:index/getClientConfig:getClientConfig', __args__, opts=opts, typ=GetClientConfigResult).value
return AwaitableGetClientConfigResult(
- client_id=__ret__.get('clientId'),
- id=__ret__.get('id'),
- object_id=__ret__.get('objectId'),
- subscription_id=__ret__.get('subscriptionId'),
- tenant_id=__ret__.get('tenantId'))
+ client_id=__ret__.client_id,
+ id=__ret__.id,
+ object_id=__ret__.object_id,
+ subscription_id=__ret__.subscription_id,
+ tenant_id=__ret__.tenant_id)
diff --git a/sdk/python/pulumi_azuread/get_domains.py b/sdk/python/pulumi_azuread/get_domains.py
index 19994be65..bb83ab245 100644
--- a/sdk/python/pulumi_azuread/get_domains.py
+++ b/sdk/python/pulumi_azuread/get_domains.py
@@ -5,9 +5,17 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+from . import outputs
+__all__ = [
+ 'GetDomainsResult',
+ 'AwaitableGetDomainsResult',
+ 'get_domains',
+]
+
+@pulumi.output_type
class GetDomainsResult:
"""
A collection of values returned by getDomains.
@@ -15,25 +23,52 @@ class GetDomainsResult:
def __init__(__self__, domains=None, id=None, include_unverified=None, only_default=None, only_initial=None):
if domains and not isinstance(domains, list):
raise TypeError("Expected argument 'domains' to be a list")
- __self__.domains = domains
- """
- One or more `domain` blocks as defined below.
- """
+ pulumi.set(__self__, "domains", domains)
if id and not isinstance(id, str):
raise TypeError("Expected argument 'id' to be a str")
- __self__.id = id
- """
- The provider-assigned unique ID for this managed resource.
- """
+ pulumi.set(__self__, "id", id)
if include_unverified and not isinstance(include_unverified, bool):
raise TypeError("Expected argument 'include_unverified' to be a bool")
- __self__.include_unverified = include_unverified
+ pulumi.set(__self__, "include_unverified", include_unverified)
if only_default and not isinstance(only_default, bool):
raise TypeError("Expected argument 'only_default' to be a bool")
- __self__.only_default = only_default
+ pulumi.set(__self__, "only_default", only_default)
if only_initial and not isinstance(only_initial, bool):
raise TypeError("Expected argument 'only_initial' to be a bool")
- __self__.only_initial = only_initial
+ pulumi.set(__self__, "only_initial", only_initial)
+
+ @property
+ @pulumi.getter
+ def domains(self) -> List['outputs.GetDomainsDomainResult']:
+ """
+ One or more `domain` blocks as defined below.
+ """
+ return pulumi.get(self, "domains")
+
+ @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="includeUnverified")
+ def include_unverified(self) -> Optional[bool]:
+ return pulumi.get(self, "include_unverified")
+
+ @property
+ @pulumi.getter(name="onlyDefault")
+ def only_default(self) -> Optional[bool]:
+ return pulumi.get(self, "only_default")
+
+ @property
+ @pulumi.getter(name="onlyInitial")
+ def only_initial(self) -> Optional[bool]:
+ return pulumi.get(self, "only_initial")
+
+
class AwaitableGetDomainsResult(GetDomainsResult):
# pylint: disable=using-constant-test
def __await__(self):
@@ -46,7 +81,11 @@ def __await__(self):
only_default=self.only_default,
only_initial=self.only_initial)
-def get_domains(include_unverified=None,only_default=None,only_initial=None,opts=None):
+
+def get_domains(include_unverified: Optional[bool] = None,
+ only_default: Optional[bool] = None,
+ only_initial: Optional[bool] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDomainsResult:
"""
Use this data source to access information about an existing Domains within Azure Active Directory.
@@ -68,20 +107,18 @@ def get_domains(include_unverified=None,only_default=None,only_initial=None,opts
:param bool only_initial: Set to `true` to only return the initial domain, which is your primary Azure Active Directory tenant domain. Defaults to `false`.
"""
__args__ = dict()
-
-
__args__['includeUnverified'] = include_unverified
__args__['onlyDefault'] = only_default
__args__['onlyInitial'] = only_initial
if opts is None:
opts = pulumi.InvokeOptions()
if opts.version is None:
- opts.version = utilities.get_version()
- __ret__ = pulumi.runtime.invoke('azuread:index/getDomains:getDomains', __args__, opts=opts).value
+ opts.version = _utilities.get_version()
+ __ret__ = pulumi.runtime.invoke('azuread:index/getDomains:getDomains', __args__, opts=opts, typ=GetDomainsResult).value
return AwaitableGetDomainsResult(
- domains=__ret__.get('domains'),
- id=__ret__.get('id'),
- include_unverified=__ret__.get('includeUnverified'),
- only_default=__ret__.get('onlyDefault'),
- only_initial=__ret__.get('onlyInitial'))
+ domains=__ret__.domains,
+ id=__ret__.id,
+ include_unverified=__ret__.include_unverified,
+ only_default=__ret__.only_default,
+ only_initial=__ret__.only_initial)
diff --git a/sdk/python/pulumi_azuread/get_group.py b/sdk/python/pulumi_azuread/get_group.py
index 283bd7e12..796f3e168 100644
--- a/sdk/python/pulumi_azuread/get_group.py
+++ b/sdk/python/pulumi_azuread/get_group.py
@@ -5,9 +5,16 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+__all__ = [
+ 'GetGroupResult',
+ 'AwaitableGetGroupResult',
+ 'get_group',
+]
+
+@pulumi.output_type
class GetGroupResult:
"""
A collection of values returned by getGroup.
@@ -15,37 +22,69 @@ class GetGroupResult:
def __init__(__self__, description=None, id=None, members=None, name=None, object_id=None, owners=None):
if description and not isinstance(description, str):
raise TypeError("Expected argument 'description' to be a str")
- __self__.description = description
+ pulumi.set(__self__, "description", description)
+ if id and not isinstance(id, str):
+ raise TypeError("Expected argument 'id' to be a str")
+ pulumi.set(__self__, "id", id)
+ if members and not isinstance(members, list):
+ raise TypeError("Expected argument 'members' to be a list")
+ pulumi.set(__self__, "members", members)
+ if name and not isinstance(name, str):
+ raise TypeError("Expected argument 'name' to be a str")
+ pulumi.set(__self__, "name", name)
+ if object_id and not isinstance(object_id, str):
+ raise TypeError("Expected argument 'object_id' to be a str")
+ pulumi.set(__self__, "object_id", object_id)
+ if owners and not isinstance(owners, list):
+ raise TypeError("Expected argument 'owners' to be a list")
+ pulumi.set(__self__, "owners", owners)
+
+ @property
+ @pulumi.getter
+ def description(self) -> str:
"""
The description of the AD Group.
"""
- if id and not isinstance(id, str):
- raise TypeError("Expected argument 'id' to be a str")
- __self__.id = id
+ return pulumi.get(self, "description")
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
"""
The provider-assigned unique ID for this managed resource.
"""
- if members and not isinstance(members, list):
- raise TypeError("Expected argument 'members' to be a list")
- __self__.members = members
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter
+ def members(self) -> List[str]:
"""
The Object IDs of the Azure AD Group members.
"""
- if name and not isinstance(name, str):
- raise TypeError("Expected argument 'name' to be a str")
- __self__.name = name
+ return pulumi.get(self, "members")
+
+ @property
+ @pulumi.getter
+ def name(self) -> str:
"""
The name of the Azure AD Group.
"""
- if object_id and not isinstance(object_id, str):
- raise TypeError("Expected argument 'object_id' to be a str")
- __self__.object_id = object_id
- if owners and not isinstance(owners, list):
- raise TypeError("Expected argument 'owners' to be a list")
- __self__.owners = owners
+ return pulumi.get(self, "name")
+
+ @property
+ @pulumi.getter(name="objectId")
+ def object_id(self) -> str:
+ return pulumi.get(self, "object_id")
+
+ @property
+ @pulumi.getter
+ def owners(self) -> List[str]:
"""
The Object IDs of the Azure AD Group owners.
"""
+ return pulumi.get(self, "owners")
+
+
class AwaitableGetGroupResult(GetGroupResult):
# pylint: disable=using-constant-test
def __await__(self):
@@ -59,7 +98,10 @@ def __await__(self):
object_id=self.object_id,
owners=self.owners)
-def get_group(name=None,object_id=None,opts=None):
+
+def get_group(name: Optional[str] = None,
+ object_id: Optional[str] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetGroupResult:
"""
Gets information about an Azure Active Directory group.
@@ -80,20 +122,18 @@ def get_group(name=None,object_id=None,opts=None):
:param str object_id: Specifies the Object ID of the AD Group within Azure Active Directory.
"""
__args__ = dict()
-
-
__args__['name'] = name
__args__['objectId'] = object_id
if opts is None:
opts = pulumi.InvokeOptions()
if opts.version is None:
- opts.version = utilities.get_version()
- __ret__ = pulumi.runtime.invoke('azuread:index/getGroup:getGroup', __args__, opts=opts).value
+ opts.version = _utilities.get_version()
+ __ret__ = pulumi.runtime.invoke('azuread:index/getGroup:getGroup', __args__, opts=opts, typ=GetGroupResult).value
return AwaitableGetGroupResult(
- description=__ret__.get('description'),
- id=__ret__.get('id'),
- members=__ret__.get('members'),
- name=__ret__.get('name'),
- object_id=__ret__.get('objectId'),
- owners=__ret__.get('owners'))
+ description=__ret__.description,
+ id=__ret__.id,
+ members=__ret__.members,
+ name=__ret__.name,
+ object_id=__ret__.object_id,
+ owners=__ret__.owners)
diff --git a/sdk/python/pulumi_azuread/get_groups.py b/sdk/python/pulumi_azuread/get_groups.py
index 7c024dc56..c21b4de65 100644
--- a/sdk/python/pulumi_azuread/get_groups.py
+++ b/sdk/python/pulumi_azuread/get_groups.py
@@ -5,9 +5,16 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+__all__ = [
+ 'GetGroupsResult',
+ 'AwaitableGetGroupsResult',
+ 'get_groups',
+]
+
+@pulumi.output_type
class GetGroupsResult:
"""
A collection of values returned by getGroups.
@@ -15,22 +22,39 @@ class GetGroupsResult:
def __init__(__self__, id=None, names=None, object_ids=None):
if id and not isinstance(id, str):
raise TypeError("Expected argument 'id' to be a str")
- __self__.id = id
+ pulumi.set(__self__, "id", id)
+ if names and not isinstance(names, list):
+ raise TypeError("Expected argument 'names' to be a list")
+ pulumi.set(__self__, "names", names)
+ if object_ids and not isinstance(object_ids, list):
+ raise TypeError("Expected argument 'object_ids' to be a list")
+ pulumi.set(__self__, "object_ids", object_ids)
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
"""
The provider-assigned unique ID for this managed resource.
"""
- if names and not isinstance(names, list):
- raise TypeError("Expected argument 'names' to be a list")
- __self__.names = names
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter
+ def names(self) -> List[str]:
"""
The Display Names of the Azure AD Groups.
"""
- if object_ids and not isinstance(object_ids, list):
- raise TypeError("Expected argument 'object_ids' to be a list")
- __self__.object_ids = object_ids
+ return pulumi.get(self, "names")
+
+ @property
+ @pulumi.getter(name="objectIds")
+ def object_ids(self) -> List[str]:
"""
The Object IDs of the Azure AD Groups.
"""
+ return pulumi.get(self, "object_ids")
+
+
class AwaitableGetGroupsResult(GetGroupsResult):
# pylint: disable=using-constant-test
def __await__(self):
@@ -41,7 +65,10 @@ def __await__(self):
names=self.names,
object_ids=self.object_ids)
-def get_groups(names=None,object_ids=None,opts=None):
+
+def get_groups(names: Optional[List[str]] = None,
+ object_ids: Optional[List[str]] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetGroupsResult:
"""
Gets Object IDs or Display Names for multiple Azure Active Directory groups.
@@ -60,21 +87,19 @@ def get_groups(names=None,object_ids=None,opts=None):
```
- :param list names: The Display Names of the Azure AD Groups.
- :param list object_ids: The Object IDs of the Azure AD Groups.
+ :param List[str] names: The Display Names of the Azure AD Groups.
+ :param List[str] object_ids: The Object IDs of the Azure AD Groups.
"""
__args__ = dict()
-
-
__args__['names'] = names
__args__['objectIds'] = object_ids
if opts is None:
opts = pulumi.InvokeOptions()
if opts.version is None:
- opts.version = utilities.get_version()
- __ret__ = pulumi.runtime.invoke('azuread:index/getGroups:getGroups', __args__, opts=opts).value
+ opts.version = _utilities.get_version()
+ __ret__ = pulumi.runtime.invoke('azuread:index/getGroups:getGroups', __args__, opts=opts, typ=GetGroupsResult).value
return AwaitableGetGroupsResult(
- id=__ret__.get('id'),
- names=__ret__.get('names'),
- object_ids=__ret__.get('objectIds'))
+ id=__ret__.id,
+ names=__ret__.names,
+ object_ids=__ret__.object_ids)
diff --git a/sdk/python/pulumi_azuread/get_service_principal.py b/sdk/python/pulumi_azuread/get_service_principal.py
index a682a170e..c32ace11b 100644
--- a/sdk/python/pulumi_azuread/get_service_principal.py
+++ b/sdk/python/pulumi_azuread/get_service_principal.py
@@ -5,9 +5,18 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
-
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+from . import outputs
+from ._inputs import *
+
+__all__ = [
+ 'GetServicePrincipalResult',
+ 'AwaitableGetServicePrincipalResult',
+ 'get_service_principal',
+]
+
+@pulumi.output_type
class GetServicePrincipalResult:
"""
A collection of values returned by getServicePrincipal.
@@ -15,28 +24,60 @@ class GetServicePrincipalResult:
def __init__(__self__, app_roles=None, application_id=None, display_name=None, id=None, oauth2_permissions=None, object_id=None):
if app_roles and not isinstance(app_roles, list):
raise TypeError("Expected argument 'app_roles' to be a list")
- __self__.app_roles = app_roles
+ pulumi.set(__self__, "app_roles", app_roles)
if application_id and not isinstance(application_id, str):
raise TypeError("Expected argument 'application_id' to be a str")
- __self__.application_id = application_id
+ pulumi.set(__self__, "application_id", application_id)
if display_name and not isinstance(display_name, str):
raise TypeError("Expected argument 'display_name' to be a str")
- __self__.display_name = display_name
- """
- Display name for the permission that appears in the admin consent and app assignment experiences.
- """
+ pulumi.set(__self__, "display_name", display_name)
if id and not isinstance(id, str):
raise TypeError("Expected argument 'id' to be a str")
- __self__.id = id
- """
- The provider-assigned unique ID for this managed resource.
- """
+ pulumi.set(__self__, "id", id)
if oauth2_permissions and not isinstance(oauth2_permissions, list):
raise TypeError("Expected argument 'oauth2_permissions' to be a list")
- __self__.oauth2_permissions = oauth2_permissions
+ pulumi.set(__self__, "oauth2_permissions", oauth2_permissions)
if object_id and not isinstance(object_id, str):
raise TypeError("Expected argument 'object_id' to be a str")
- __self__.object_id = object_id
+ pulumi.set(__self__, "object_id", object_id)
+
+ @property
+ @pulumi.getter(name="appRoles")
+ def app_roles(self) -> List['outputs.GetServicePrincipalAppRoleResult']:
+ return pulumi.get(self, "app_roles")
+
+ @property
+ @pulumi.getter(name="applicationId")
+ def application_id(self) -> str:
+ return pulumi.get(self, "application_id")
+
+ @property
+ @pulumi.getter(name="displayName")
+ def display_name(self) -> str:
+ """
+ Display name for the permission that appears in the admin consent and app assignment experiences.
+ """
+ return pulumi.get(self, "display_name")
+
+ @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="oauth2Permissions")
+ def oauth2_permissions(self) -> List['outputs.GetServicePrincipalOauth2PermissionResult']:
+ return pulumi.get(self, "oauth2_permissions")
+
+ @property
+ @pulumi.getter(name="objectId")
+ def object_id(self) -> str:
+ return pulumi.get(self, "object_id")
+
+
class AwaitableGetServicePrincipalResult(GetServicePrincipalResult):
# pylint: disable=using-constant-test
def __await__(self):
@@ -50,7 +91,12 @@ def __await__(self):
oauth2_permissions=self.oauth2_permissions,
object_id=self.object_id)
-def get_service_principal(application_id=None,display_name=None,oauth2_permissions=None,object_id=None,opts=None):
+
+def get_service_principal(application_id: Optional[str] = None,
+ display_name: Optional[str] = None,
+ oauth2_permissions: Optional[List[pulumi.InputType['GetServicePrincipalOauth2PermissionArgs']]] = None,
+ object_id: Optional[str] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetServicePrincipalResult:
"""
Gets information about an existing Service Principal associated with an Application within Azure Active Directory.
@@ -85,23 +131,10 @@ def get_service_principal(application_id=None,display_name=None,oauth2_permissio
:param str application_id: The ID of the Azure AD Application.
:param str display_name: The Display Name of the Azure AD Application associated with this Service Principal.
- :param list oauth2_permissions: A collection of OAuth 2.0 permissions exposed by the associated application. Each permission is covered by a `oauth2_permission` block as documented below.
+ :param List[pulumi.InputType['GetServicePrincipalOauth2PermissionArgs']] oauth2_permissions: A collection of OAuth 2.0 permissions exposed by the associated application. Each permission is covered by a `oauth2_permission` block as documented below.
:param str object_id: The ID of the Azure AD Service Principal.
-
- The **oauth2_permissions** object supports the following:
-
- * `adminConsentDescription` (`str`) - The description of the admin consent
- * `adminConsentDisplayName` (`str`) - The display name of the admin consent
- * `id` (`str`) - The unique identifier of the `app_role`.
- * `isEnabled` (`bool`) - Determines if the app role is enabled.
- * `type` (`str`) - The type of the permission
- * `userConsentDescription` (`str`) - The description of the user consent
- * `userConsentDisplayName` (`str`) - The display name of the user consent
- * `value` (`str`) - Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
"""
__args__ = dict()
-
-
__args__['applicationId'] = application_id
__args__['displayName'] = display_name
__args__['oauth2Permissions'] = oauth2_permissions
@@ -109,13 +142,13 @@ def get_service_principal(application_id=None,display_name=None,oauth2_permissio
if opts is None:
opts = pulumi.InvokeOptions()
if opts.version is None:
- opts.version = utilities.get_version()
- __ret__ = pulumi.runtime.invoke('azuread:index/getServicePrincipal:getServicePrincipal', __args__, opts=opts).value
+ opts.version = _utilities.get_version()
+ __ret__ = pulumi.runtime.invoke('azuread:index/getServicePrincipal:getServicePrincipal', __args__, opts=opts, typ=GetServicePrincipalResult).value
return AwaitableGetServicePrincipalResult(
- app_roles=__ret__.get('appRoles'),
- application_id=__ret__.get('applicationId'),
- display_name=__ret__.get('displayName'),
- id=__ret__.get('id'),
- oauth2_permissions=__ret__.get('oauth2Permissions'),
- object_id=__ret__.get('objectId'))
+ app_roles=__ret__.app_roles,
+ application_id=__ret__.application_id,
+ display_name=__ret__.display_name,
+ id=__ret__.id,
+ oauth2_permissions=__ret__.oauth2_permissions,
+ object_id=__ret__.object_id)
diff --git a/sdk/python/pulumi_azuread/get_user.py b/sdk/python/pulumi_azuread/get_user.py
index b15f88c7e..878e32ef9 100644
--- a/sdk/python/pulumi_azuread/get_user.py
+++ b/sdk/python/pulumi_azuread/get_user.py
@@ -5,9 +5,16 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+__all__ = [
+ 'GetUserResult',
+ 'AwaitableGetUserResult',
+ 'get_user',
+]
+
+@pulumi.output_type
class GetUserResult:
"""
A collection of values returned by getUser.
@@ -15,67 +22,124 @@ class GetUserResult:
def __init__(__self__, account_enabled=None, display_name=None, id=None, immutable_id=None, mail=None, mail_nickname=None, object_id=None, onpremises_sam_account_name=None, onpremises_user_principal_name=None, usage_location=None, user_principal_name=None):
if account_enabled and not isinstance(account_enabled, bool):
raise TypeError("Expected argument 'account_enabled' to be a bool")
- __self__.account_enabled = account_enabled
+ pulumi.set(__self__, "account_enabled", account_enabled)
+ if display_name and not isinstance(display_name, str):
+ raise TypeError("Expected argument 'display_name' to be a str")
+ pulumi.set(__self__, "display_name", display_name)
+ if id and not isinstance(id, str):
+ raise TypeError("Expected argument 'id' to be a str")
+ pulumi.set(__self__, "id", id)
+ if immutable_id and not isinstance(immutable_id, str):
+ raise TypeError("Expected argument 'immutable_id' to be a str")
+ pulumi.set(__self__, "immutable_id", immutable_id)
+ if mail and not isinstance(mail, str):
+ raise TypeError("Expected argument 'mail' to be a str")
+ pulumi.set(__self__, "mail", mail)
+ if mail_nickname and not isinstance(mail_nickname, str):
+ raise TypeError("Expected argument 'mail_nickname' to be a str")
+ pulumi.set(__self__, "mail_nickname", mail_nickname)
+ if object_id and not isinstance(object_id, str):
+ raise TypeError("Expected argument 'object_id' to be a str")
+ pulumi.set(__self__, "object_id", object_id)
+ if onpremises_sam_account_name and not isinstance(onpremises_sam_account_name, str):
+ raise TypeError("Expected argument 'onpremises_sam_account_name' to be a str")
+ pulumi.set(__self__, "onpremises_sam_account_name", onpremises_sam_account_name)
+ if onpremises_user_principal_name and not isinstance(onpremises_user_principal_name, str):
+ raise TypeError("Expected argument 'onpremises_user_principal_name' to be a str")
+ pulumi.set(__self__, "onpremises_user_principal_name", onpremises_user_principal_name)
+ if usage_location and not isinstance(usage_location, str):
+ raise TypeError("Expected argument 'usage_location' to be a str")
+ pulumi.set(__self__, "usage_location", usage_location)
+ if user_principal_name and not isinstance(user_principal_name, str):
+ raise TypeError("Expected argument 'user_principal_name' to be a str")
+ pulumi.set(__self__, "user_principal_name", user_principal_name)
+
+ @property
+ @pulumi.getter(name="accountEnabled")
+ def account_enabled(self) -> bool:
"""
`True` if the account is enabled; otherwise `False`.
"""
- if display_name and not isinstance(display_name, str):
- raise TypeError("Expected argument 'display_name' to be a str")
- __self__.display_name = display_name
+ return pulumi.get(self, "account_enabled")
+
+ @property
+ @pulumi.getter(name="displayName")
+ def display_name(self) -> str:
"""
The Display Name of the Azure AD User.
"""
- if id and not isinstance(id, str):
- raise TypeError("Expected argument 'id' to be a str")
- __self__.id = id
+ return pulumi.get(self, "display_name")
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
"""
The provider-assigned unique ID for this managed resource.
"""
- if immutable_id and not isinstance(immutable_id, str):
- raise TypeError("Expected argument 'immutable_id' to be a str")
- __self__.immutable_id = immutable_id
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter(name="immutableId")
+ def immutable_id(self) -> str:
"""
The value used to associate an on-premises Active Directory user account with their Azure AD user object.
"""
- if mail and not isinstance(mail, str):
- raise TypeError("Expected argument 'mail' to be a str")
- __self__.mail = mail
+ return pulumi.get(self, "immutable_id")
+
+ @property
+ @pulumi.getter
+ def mail(self) -> str:
"""
The primary email address of the Azure AD User.
"""
- if mail_nickname and not isinstance(mail_nickname, str):
- raise TypeError("Expected argument 'mail_nickname' to be a str")
- __self__.mail_nickname = mail_nickname
+ return pulumi.get(self, "mail")
+
+ @property
+ @pulumi.getter(name="mailNickname")
+ def mail_nickname(self) -> str:
"""
The email alias of the Azure AD User.
"""
- if object_id and not isinstance(object_id, str):
- raise TypeError("Expected argument 'object_id' to be a str")
- __self__.object_id = object_id
- if onpremises_sam_account_name and not isinstance(onpremises_sam_account_name, str):
- raise TypeError("Expected argument 'onpremises_sam_account_name' to be a str")
- __self__.onpremises_sam_account_name = onpremises_sam_account_name
+ return pulumi.get(self, "mail_nickname")
+
+ @property
+ @pulumi.getter(name="objectId")
+ def object_id(self) -> str:
+ return pulumi.get(self, "object_id")
+
+ @property
+ @pulumi.getter(name="onpremisesSamAccountName")
+ def onpremises_sam_account_name(self) -> str:
"""
The on premise sam account name of the Azure AD User.
"""
- if onpremises_user_principal_name and not isinstance(onpremises_user_principal_name, str):
- raise TypeError("Expected argument 'onpremises_user_principal_name' to be a str")
- __self__.onpremises_user_principal_name = onpremises_user_principal_name
+ return pulumi.get(self, "onpremises_sam_account_name")
+
+ @property
+ @pulumi.getter(name="onpremisesUserPrincipalName")
+ def onpremises_user_principal_name(self) -> str:
"""
The on premise user principal name of the Azure AD User.
"""
- if usage_location and not isinstance(usage_location, str):
- raise TypeError("Expected argument 'usage_location' to be a str")
- __self__.usage_location = usage_location
+ return pulumi.get(self, "onpremises_user_principal_name")
+
+ @property
+ @pulumi.getter(name="usageLocation")
+ def usage_location(self) -> str:
"""
The usage location of the Azure AD User.
"""
- if user_principal_name and not isinstance(user_principal_name, str):
- raise TypeError("Expected argument 'user_principal_name' to be a str")
- __self__.user_principal_name = user_principal_name
+ return pulumi.get(self, "usage_location")
+
+ @property
+ @pulumi.getter(name="userPrincipalName")
+ def user_principal_name(self) -> str:
"""
The User Principal Name of the Azure AD User.
"""
+ return pulumi.get(self, "user_principal_name")
+
+
class AwaitableGetUserResult(GetUserResult):
# pylint: disable=using-constant-test
def __await__(self):
@@ -94,7 +158,11 @@ def __await__(self):
usage_location=self.usage_location,
user_principal_name=self.user_principal_name)
-def get_user(mail_nickname=None,object_id=None,user_principal_name=None,opts=None):
+
+def get_user(mail_nickname: Optional[str] = None,
+ object_id: Optional[str] = None,
+ user_principal_name: Optional[str] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetUserResult:
"""
Gets information about an Azure Active Directory user.
@@ -115,26 +183,24 @@ def get_user(mail_nickname=None,object_id=None,user_principal_name=None,opts=Non
:param str user_principal_name: The User Principal Name of the Azure AD User.
"""
__args__ = dict()
-
-
__args__['mailNickname'] = mail_nickname
__args__['objectId'] = object_id
__args__['userPrincipalName'] = user_principal_name
if opts is None:
opts = pulumi.InvokeOptions()
if opts.version is None:
- opts.version = utilities.get_version()
- __ret__ = pulumi.runtime.invoke('azuread:index/getUser:getUser', __args__, opts=opts).value
+ opts.version = _utilities.get_version()
+ __ret__ = pulumi.runtime.invoke('azuread:index/getUser:getUser', __args__, opts=opts, typ=GetUserResult).value
return AwaitableGetUserResult(
- account_enabled=__ret__.get('accountEnabled'),
- display_name=__ret__.get('displayName'),
- id=__ret__.get('id'),
- immutable_id=__ret__.get('immutableId'),
- mail=__ret__.get('mail'),
- mail_nickname=__ret__.get('mailNickname'),
- object_id=__ret__.get('objectId'),
- onpremises_sam_account_name=__ret__.get('onpremisesSamAccountName'),
- onpremises_user_principal_name=__ret__.get('onpremisesUserPrincipalName'),
- usage_location=__ret__.get('usageLocation'),
- user_principal_name=__ret__.get('userPrincipalName'))
+ account_enabled=__ret__.account_enabled,
+ display_name=__ret__.display_name,
+ id=__ret__.id,
+ immutable_id=__ret__.immutable_id,
+ mail=__ret__.mail,
+ mail_nickname=__ret__.mail_nickname,
+ object_id=__ret__.object_id,
+ onpremises_sam_account_name=__ret__.onpremises_sam_account_name,
+ onpremises_user_principal_name=__ret__.onpremises_user_principal_name,
+ usage_location=__ret__.usage_location,
+ user_principal_name=__ret__.user_principal_name)
diff --git a/sdk/python/pulumi_azuread/get_users.py b/sdk/python/pulumi_azuread/get_users.py
index c97f2ee91..c8e785c46 100644
--- a/sdk/python/pulumi_azuread/get_users.py
+++ b/sdk/python/pulumi_azuread/get_users.py
@@ -5,9 +5,17 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+from . import outputs
+__all__ = [
+ 'GetUsersResult',
+ 'AwaitableGetUsersResult',
+ 'get_users',
+]
+
+@pulumi.output_type
class GetUsersResult:
"""
A collection of values returned by getUsers.
@@ -15,37 +23,69 @@ class GetUsersResult:
def __init__(__self__, id=None, ignore_missing=None, mail_nicknames=None, object_ids=None, user_principal_names=None, users=None):
if id and not isinstance(id, str):
raise TypeError("Expected argument 'id' to be a str")
- __self__.id = id
- """
- The provider-assigned unique ID for this managed resource.
- """
+ pulumi.set(__self__, "id", id)
if ignore_missing and not isinstance(ignore_missing, bool):
raise TypeError("Expected argument 'ignore_missing' to be a bool")
- __self__.ignore_missing = ignore_missing
+ pulumi.set(__self__, "ignore_missing", ignore_missing)
if mail_nicknames and not isinstance(mail_nicknames, list):
raise TypeError("Expected argument 'mail_nicknames' to be a list")
- __self__.mail_nicknames = mail_nicknames
+ pulumi.set(__self__, "mail_nicknames", mail_nicknames)
+ if object_ids and not isinstance(object_ids, list):
+ raise TypeError("Expected argument 'object_ids' to be a list")
+ pulumi.set(__self__, "object_ids", object_ids)
+ if user_principal_names and not isinstance(user_principal_names, list):
+ raise TypeError("Expected argument 'user_principal_names' to be a list")
+ pulumi.set(__self__, "user_principal_names", user_principal_names)
+ if users and not isinstance(users, list):
+ raise TypeError("Expected argument 'users' to be a list")
+ pulumi.set(__self__, "users", users)
+
+ @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="ignoreMissing")
+ def ignore_missing(self) -> Optional[bool]:
+ return pulumi.get(self, "ignore_missing")
+
+ @property
+ @pulumi.getter(name="mailNicknames")
+ def mail_nicknames(self) -> List[str]:
"""
The email aliases of the Azure AD Users.
"""
- if object_ids and not isinstance(object_ids, list):
- raise TypeError("Expected argument 'object_ids' to be a list")
- __self__.object_ids = object_ids
+ return pulumi.get(self, "mail_nicknames")
+
+ @property
+ @pulumi.getter(name="objectIds")
+ def object_ids(self) -> List[str]:
"""
The Object IDs of the Azure AD Users.
"""
- if user_principal_names and not isinstance(user_principal_names, list):
- raise TypeError("Expected argument 'user_principal_names' to be a list")
- __self__.user_principal_names = user_principal_names
+ return pulumi.get(self, "object_ids")
+
+ @property
+ @pulumi.getter(name="userPrincipalNames")
+ def user_principal_names(self) -> List[str]:
"""
The User Principal Names of the Azure AD Users.
"""
- if users and not isinstance(users, list):
- raise TypeError("Expected argument 'users' to be a list")
- __self__.users = users
+ return pulumi.get(self, "user_principal_names")
+
+ @property
+ @pulumi.getter
+ def users(self) -> List['outputs.GetUsersUserResult']:
"""
An Array of Azure AD Users. Each `user` object consists of the fields documented below.
"""
+ return pulumi.get(self, "users")
+
+
class AwaitableGetUsersResult(GetUsersResult):
# pylint: disable=using-constant-test
def __await__(self):
@@ -59,7 +99,12 @@ def __await__(self):
user_principal_names=self.user_principal_names,
users=self.users)
-def get_users(ignore_missing=None,mail_nicknames=None,object_ids=None,user_principal_names=None,opts=None):
+
+def get_users(ignore_missing: Optional[bool] = None,
+ mail_nicknames: Optional[List[str]] = None,
+ object_ids: Optional[List[str]] = None,
+ user_principal_names: Optional[List[str]] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetUsersResult:
"""
Gets Object IDs or UPNs for multiple Azure Active Directory users.
@@ -79,13 +124,11 @@ def get_users(ignore_missing=None,mail_nicknames=None,object_ids=None,user_princ
:param bool ignore_missing: Ignore missing users and return users that were found. The data source will still fail if no users are found. Defaults to false.
- :param list mail_nicknames: The email aliases of the Azure AD Users.
- :param list object_ids: The Object IDs of the Azure AD Users.
- :param list user_principal_names: The User Principal Names of the Azure AD Users.
+ :param List[str] mail_nicknames: The email aliases of the Azure AD Users.
+ :param List[str] object_ids: The Object IDs of the Azure AD Users.
+ :param List[str] user_principal_names: The User Principal Names of the Azure AD Users.
"""
__args__ = dict()
-
-
__args__['ignoreMissing'] = ignore_missing
__args__['mailNicknames'] = mail_nicknames
__args__['objectIds'] = object_ids
@@ -93,13 +136,13 @@ def get_users(ignore_missing=None,mail_nicknames=None,object_ids=None,user_princ
if opts is None:
opts = pulumi.InvokeOptions()
if opts.version is None:
- opts.version = utilities.get_version()
- __ret__ = pulumi.runtime.invoke('azuread:index/getUsers:getUsers', __args__, opts=opts).value
+ opts.version = _utilities.get_version()
+ __ret__ = pulumi.runtime.invoke('azuread:index/getUsers:getUsers', __args__, opts=opts, typ=GetUsersResult).value
return AwaitableGetUsersResult(
- id=__ret__.get('id'),
- ignore_missing=__ret__.get('ignoreMissing'),
- mail_nicknames=__ret__.get('mailNicknames'),
- object_ids=__ret__.get('objectIds'),
- user_principal_names=__ret__.get('userPrincipalNames'),
- users=__ret__.get('users'))
+ id=__ret__.id,
+ ignore_missing=__ret__.ignore_missing,
+ mail_nicknames=__ret__.mail_nicknames,
+ object_ids=__ret__.object_ids,
+ user_principal_names=__ret__.user_principal_names,
+ users=__ret__.users)
diff --git a/sdk/python/pulumi_azuread/group.py b/sdk/python/pulumi_azuread/group.py
index 9d00021a8..47ad96506 100644
--- a/sdk/python/pulumi_azuread/group.py
+++ b/sdk/python/pulumi_azuread/group.py
@@ -5,33 +5,24 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+
+__all__ = ['Group']
class Group(pulumi.CustomResource):
- description: pulumi.Output[str]
- """
- The description for the Group. Changing this forces a new resource to be created.
- """
- members: pulumi.Output[list]
- """
- A set of members who should be present in this Group. Supported Object types are Users, Groups or Service Principals.
- """
- name: pulumi.Output[str]
- """
- The display name for the Group. Changing this forces a new resource to be created.
- """
- object_id: pulumi.Output[str]
- owners: pulumi.Output[list]
- """
- A set of owners who own this Group. Supported Object types are Users or Service Principals.
- """
- prevent_duplicate_names: pulumi.Output[bool]
- """
- If `true`, will return an error when an existing Group is found with the same name. Defaults to `false`.
- """
- def __init__(__self__, resource_name, opts=None, description=None, members=None, name=None, owners=None, prevent_duplicate_names=None, __props__=None, __name__=None, __opts__=None):
+ def __init__(__self__,
+ resource_name,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ description: Optional[pulumi.Input[str]] = None,
+ members: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ name: Optional[pulumi.Input[str]] = None,
+ owners: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ prevent_duplicate_names: Optional[pulumi.Input[bool]] = None,
+ __props__=None,
+ __name__=None,
+ __opts__=None):
"""
Manages a Group within Azure Active Directory.
@@ -64,9 +55,9 @@ def __init__(__self__, resource_name, opts=None, description=None, members=None,
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[str] description: The description for the Group. Changing this forces a new resource to be created.
- :param pulumi.Input[list] members: A set of members who should be present in this Group. Supported Object types are Users, Groups or Service Principals.
+ :param pulumi.Input[List[pulumi.Input[str]]] members: A set of members who should be present in this Group. Supported Object types are Users, Groups or Service Principals.
:param pulumi.Input[str] name: The display name for the Group. Changing this forces a new resource to be created.
- :param pulumi.Input[list] owners: A set of owners who own this Group. Supported Object types are Users or Service Principals.
+ :param pulumi.Input[List[pulumi.Input[str]]] owners: A set of owners who own this Group. Supported Object types are Users or Service Principals.
:param pulumi.Input[bool] prevent_duplicate_names: If `true`, will return an error when an existing Group is found with the same name. Defaults to `false`.
"""
if __name__ is not None:
@@ -80,7 +71,7 @@ def __init__(__self__, resource_name, opts=None, description=None, members=None,
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.version is None:
- opts.version = utilities.get_version()
+ opts.version = _utilities.get_version()
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
@@ -99,18 +90,26 @@ def __init__(__self__, resource_name, opts=None, description=None, members=None,
opts)
@staticmethod
- def get(resource_name, id, opts=None, description=None, members=None, name=None, object_id=None, owners=None, prevent_duplicate_names=None):
+ def get(resource_name: str,
+ id: pulumi.Input[str],
+ opts: Optional[pulumi.ResourceOptions] = None,
+ description: Optional[pulumi.Input[str]] = None,
+ members: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ name: Optional[pulumi.Input[str]] = None,
+ object_id: Optional[pulumi.Input[str]] = None,
+ owners: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ prevent_duplicate_names: Optional[pulumi.Input[bool]] = None) -> 'Group':
"""
Get an existing Group resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
- :param str id: The unique provider ID of the resource to lookup.
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[str] description: The description for the Group. Changing this forces a new resource to be created.
- :param pulumi.Input[list] members: A set of members who should be present in this Group. Supported Object types are Users, Groups or Service Principals.
+ :param pulumi.Input[List[pulumi.Input[str]]] members: A set of members who should be present in this Group. Supported Object types are Users, Groups or Service Principals.
:param pulumi.Input[str] name: The display name for the Group. Changing this forces a new resource to be created.
- :param pulumi.Input[list] owners: A set of owners who own this Group. Supported Object types are Users or Service Principals.
+ :param pulumi.Input[List[pulumi.Input[str]]] owners: A set of owners who own this Group. Supported Object types are Users or Service Principals.
:param pulumi.Input[bool] prevent_duplicate_names: If `true`, will return an error when an existing Group is found with the same name. Defaults to `false`.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -125,8 +124,54 @@ def get(resource_name, id, opts=None, description=None, members=None, name=None,
__props__["prevent_duplicate_names"] = prevent_duplicate_names
return Group(resource_name, opts=opts, __props__=__props__)
+ @property
+ @pulumi.getter
+ def description(self) -> Optional[str]:
+ """
+ The description for the Group. Changing this forces a new resource to be created.
+ """
+ return pulumi.get(self, "description")
+
+ @property
+ @pulumi.getter
+ def members(self) -> List[str]:
+ """
+ A set of members who should be present in this Group. Supported Object types are Users, Groups or Service Principals.
+ """
+ return pulumi.get(self, "members")
+
+ @property
+ @pulumi.getter
+ def name(self) -> str:
+ """
+ The display name for the Group. Changing this forces a new resource to be created.
+ """
+ return pulumi.get(self, "name")
+
+ @property
+ @pulumi.getter(name="objectId")
+ def object_id(self) -> str:
+ return pulumi.get(self, "object_id")
+
+ @property
+ @pulumi.getter
+ def owners(self) -> List[str]:
+ """
+ A set of owners who own this Group. Supported Object types are Users or Service Principals.
+ """
+ return pulumi.get(self, "owners")
+
+ @property
+ @pulumi.getter(name="preventDuplicateNames")
+ def prevent_duplicate_names(self) -> Optional[bool]:
+ """
+ If `true`, will return an error when an existing Group is found with the same name. Defaults to `false`.
+ """
+ return pulumi.get(self, "prevent_duplicate_names")
+
def translate_output_property(self, prop):
- return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
def translate_input_property(self, prop):
- return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+ return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+
diff --git a/sdk/python/pulumi_azuread/group_member.py b/sdk/python/pulumi_azuread/group_member.py
index 6f292a857..b1a51dace 100644
--- a/sdk/python/pulumi_azuread/group_member.py
+++ b/sdk/python/pulumi_azuread/group_member.py
@@ -5,20 +5,21 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+
+__all__ = ['GroupMember']
class GroupMember(pulumi.CustomResource):
- group_object_id: pulumi.Output[str]
- """
- The Object ID of the Azure AD Group you want to add the Member to. Changing this forces a new resource to be created.
- """
- member_object_id: pulumi.Output[str]
- """
- The Object ID of the Azure AD Object you want to add as a Member to the Group. Supported Object types are Users, Groups or Service Principals. Changing this forces a new resource to be created.
- """
- def __init__(__self__, resource_name, opts=None, group_object_id=None, member_object_id=None, __props__=None, __name__=None, __opts__=None):
+ def __init__(__self__,
+ resource_name,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ group_object_id: Optional[pulumi.Input[str]] = None,
+ member_object_id: Optional[pulumi.Input[str]] = None,
+ __props__=None,
+ __name__=None,
+ __opts__=None):
"""
Manages a single Group Membership within Azure Active Directory.
@@ -53,7 +54,7 @@ def __init__(__self__, resource_name, opts=None, group_object_id=None, member_ob
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.version is None:
- opts.version = utilities.get_version()
+ opts.version = _utilities.get_version()
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
@@ -72,13 +73,17 @@ def __init__(__self__, resource_name, opts=None, group_object_id=None, member_ob
opts)
@staticmethod
- def get(resource_name, id, opts=None, group_object_id=None, member_object_id=None):
+ def get(resource_name: str,
+ id: pulumi.Input[str],
+ opts: Optional[pulumi.ResourceOptions] = None,
+ group_object_id: Optional[pulumi.Input[str]] = None,
+ member_object_id: Optional[pulumi.Input[str]] = None) -> 'GroupMember':
"""
Get an existing GroupMember resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
- :param str id: The unique provider ID of the resource to lookup.
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[str] group_object_id: The Object ID of the Azure AD Group you want to add the Member to. Changing this forces a new resource to be created.
:param pulumi.Input[str] member_object_id: The Object ID of the Azure AD Object you want to add as a Member to the Group. Supported Object types are Users, Groups or Service Principals. Changing this forces a new resource to be created.
@@ -91,8 +96,25 @@ def get(resource_name, id, opts=None, group_object_id=None, member_object_id=Non
__props__["member_object_id"] = member_object_id
return GroupMember(resource_name, opts=opts, __props__=__props__)
+ @property
+ @pulumi.getter(name="groupObjectId")
+ def group_object_id(self) -> str:
+ """
+ The Object ID of the Azure AD Group you want to add the Member to. Changing this forces a new resource to be created.
+ """
+ return pulumi.get(self, "group_object_id")
+
+ @property
+ @pulumi.getter(name="memberObjectId")
+ def member_object_id(self) -> str:
+ """
+ The Object ID of the Azure AD Object you want to add as a Member to the Group. Supported Object types are Users, Groups or Service Principals. Changing this forces a new resource to be created.
+ """
+ return pulumi.get(self, "member_object_id")
+
def translate_output_property(self, prop):
- return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
def translate_input_property(self, prop):
- return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+ return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+
diff --git a/sdk/python/pulumi_azuread/outputs.py b/sdk/python/pulumi_azuread/outputs.py
new file mode 100644
index 000000000..b8e2b1481
--- /dev/null
+++ b/sdk/python/pulumi_azuread/outputs.py
@@ -0,0 +1,1224 @@
+# 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 warnings
+import pulumi
+import pulumi.runtime
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+from . import outputs
+
+__all__ = [
+ 'ApplicationAppRole',
+ 'ApplicationOauth2Permission',
+ 'ApplicationOptionalClaims',
+ 'ApplicationOptionalClaimsAccessToken',
+ 'ApplicationOptionalClaimsIdToken',
+ 'ApplicationRequiredResourceAccess',
+ 'ApplicationRequiredResourceAccessResourceAccess',
+ 'ServicePrincipalOauth2Permission',
+ 'GetApplicationAppRoleResult',
+ 'GetApplicationOauth2PermissionResult',
+ 'GetApplicationOptionalClaimsResult',
+ 'GetApplicationOptionalClaimsAccessTokenResult',
+ 'GetApplicationOptionalClaimsIdTokenResult',
+ 'GetApplicationRequiredResourceAccessResult',
+ 'GetApplicationRequiredResourceAccessResourceAccessResult',
+ 'GetDomainsDomainResult',
+ 'GetServicePrincipalAppRoleResult',
+ 'GetServicePrincipalOauth2PermissionResult',
+ 'GetUsersUserResult',
+]
+
+@pulumi.output_type
+class ApplicationAppRole(dict):
+ def __init__(__self__, *,
+ allowed_member_types: List[str],
+ description: str,
+ display_name: str,
+ id: Optional[str] = None,
+ is_enabled: Optional[bool] = None,
+ value: Optional[str] = None):
+ """
+ :param List[str] allowed_member_types: Specifies whether this app role definition can be assigned to users and groups by setting to `User`, or to other applications (that are accessing this application in daemon service scenarios) by setting to `Application`, or to both.
+ :param str description: Permission help text that appears in the admin app assignment and consent experiences.
+ :param str display_name: Display name for the permission that appears in the admin consent and app assignment experiences.
+ :param str id: The unique identifier of the `app_role`.
+ :param bool is_enabled: Determines if the permission is enabled: defaults to `true`.
+ :param str value: The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
+ """
+ pulumi.set(__self__, "allowed_member_types", allowed_member_types)
+ pulumi.set(__self__, "description", description)
+ pulumi.set(__self__, "display_name", display_name)
+ if id is not None:
+ pulumi.set(__self__, "id", id)
+ if is_enabled is not None:
+ pulumi.set(__self__, "is_enabled", is_enabled)
+ if value is not None:
+ pulumi.set(__self__, "value", value)
+
+ @property
+ @pulumi.getter(name="allowedMemberTypes")
+ def allowed_member_types(self) -> List[str]:
+ """
+ Specifies whether this app role definition can be assigned to users and groups by setting to `User`, or to other applications (that are accessing this application in daemon service scenarios) by setting to `Application`, or to both.
+ """
+ return pulumi.get(self, "allowed_member_types")
+
+ @property
+ @pulumi.getter
+ def description(self) -> str:
+ """
+ Permission help text that appears in the admin app assignment and consent experiences.
+ """
+ return pulumi.get(self, "description")
+
+ @property
+ @pulumi.getter(name="displayName")
+ def display_name(self) -> str:
+ """
+ Display name for the permission that appears in the admin consent and app assignment experiences.
+ """
+ return pulumi.get(self, "display_name")
+
+ @property
+ @pulumi.getter
+ def id(self) -> Optional[str]:
+ """
+ The unique identifier of the `app_role`.
+ """
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter(name="isEnabled")
+ def is_enabled(self) -> Optional[bool]:
+ """
+ Determines if the permission is enabled: defaults to `true`.
+ """
+ return pulumi.get(self, "is_enabled")
+
+ @property
+ @pulumi.getter
+ def value(self) -> Optional[str]:
+ """
+ The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
+ """
+ return pulumi.get(self, "value")
+
+ def _translate_property(self, prop):
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+
+
+@pulumi.output_type
+class ApplicationOauth2Permission(dict):
+ def __init__(__self__, *,
+ admin_consent_description: Optional[str] = None,
+ admin_consent_display_name: Optional[str] = None,
+ id: Optional[str] = None,
+ is_enabled: Optional[bool] = None,
+ type: Optional[str] = None,
+ user_consent_description: Optional[str] = None,
+ user_consent_display_name: Optional[str] = None,
+ value: Optional[str] = None):
+ """
+ :param str admin_consent_description: Permission help text that appears in the admin consent and app assignment experiences.
+ :param str admin_consent_display_name: Display name for the permission that appears in the admin consent and app assignment experiences.
+ :param str id: The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
+ :param bool is_enabled: Determines if the app role is enabled: Defaults to `true`.
+ :param str type: Type of an application: `webapp/api` or `native`. Defaults to `webapp/api`. For `native` apps type `identifier_uris` property can not not be set.
+ :param str user_consent_description: Permission help text that appears in the end user consent experience.
+ :param str user_consent_display_name: Display name for the permission that appears in the end user consent experience.
+ :param str value: Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ if admin_consent_description is not None:
+ pulumi.set(__self__, "admin_consent_description", admin_consent_description)
+ if admin_consent_display_name is not None:
+ pulumi.set(__self__, "admin_consent_display_name", admin_consent_display_name)
+ if id is not None:
+ pulumi.set(__self__, "id", id)
+ if is_enabled is not None:
+ pulumi.set(__self__, "is_enabled", is_enabled)
+ if type is not None:
+ pulumi.set(__self__, "type", type)
+ if user_consent_description is not None:
+ pulumi.set(__self__, "user_consent_description", user_consent_description)
+ if user_consent_display_name is not None:
+ pulumi.set(__self__, "user_consent_display_name", user_consent_display_name)
+ if value is not None:
+ pulumi.set(__self__, "value", value)
+
+ @property
+ @pulumi.getter(name="adminConsentDescription")
+ def admin_consent_description(self) -> Optional[str]:
+ """
+ Permission help text that appears in the admin consent and app assignment experiences.
+ """
+ return pulumi.get(self, "admin_consent_description")
+
+ @property
+ @pulumi.getter(name="adminConsentDisplayName")
+ def admin_consent_display_name(self) -> Optional[str]:
+ """
+ Display name for the permission that appears in the admin consent and app assignment experiences.
+ """
+ return pulumi.get(self, "admin_consent_display_name")
+
+ @property
+ @pulumi.getter
+ def id(self) -> Optional[str]:
+ """
+ The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
+ """
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter(name="isEnabled")
+ def is_enabled(self) -> Optional[bool]:
+ """
+ Determines if the app role is enabled: Defaults to `true`.
+ """
+ return pulumi.get(self, "is_enabled")
+
+ @property
+ @pulumi.getter
+ def type(self) -> Optional[str]:
+ """
+ Type of an application: `webapp/api` or `native`. Defaults to `webapp/api`. For `native` apps type `identifier_uris` property can not not be set.
+ """
+ return pulumi.get(self, "type")
+
+ @property
+ @pulumi.getter(name="userConsentDescription")
+ def user_consent_description(self) -> Optional[str]:
+ """
+ Permission help text that appears in the end user consent experience.
+ """
+ return pulumi.get(self, "user_consent_description")
+
+ @property
+ @pulumi.getter(name="userConsentDisplayName")
+ def user_consent_display_name(self) -> Optional[str]:
+ """
+ Display name for the permission that appears in the end user consent experience.
+ """
+ return pulumi.get(self, "user_consent_display_name")
+
+ @property
+ @pulumi.getter
+ def value(self) -> Optional[str]:
+ """
+ Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ return pulumi.get(self, "value")
+
+ def _translate_property(self, prop):
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+
+
+@pulumi.output_type
+class ApplicationOptionalClaims(dict):
+ def __init__(__self__, *,
+ access_tokens: Optional[List['outputs.ApplicationOptionalClaimsAccessToken']] = None,
+ id_tokens: Optional[List['outputs.ApplicationOptionalClaimsIdToken']] = None):
+ if access_tokens is not None:
+ pulumi.set(__self__, "access_tokens", access_tokens)
+ if id_tokens is not None:
+ pulumi.set(__self__, "id_tokens", id_tokens)
+
+ @property
+ @pulumi.getter(name="accessTokens")
+ def access_tokens(self) -> Optional[List['outputs.ApplicationOptionalClaimsAccessToken']]:
+ return pulumi.get(self, "access_tokens")
+
+ @property
+ @pulumi.getter(name="idTokens")
+ def id_tokens(self) -> Optional[List['outputs.ApplicationOptionalClaimsIdToken']]:
+ return pulumi.get(self, "id_tokens")
+
+ def _translate_property(self, prop):
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+
+
+@pulumi.output_type
+class ApplicationOptionalClaimsAccessToken(dict):
+ def __init__(__self__, *,
+ name: str,
+ additional_properties: Optional[List[str]] = None,
+ essential: Optional[bool] = None,
+ source: Optional[str] = None):
+ """
+ :param str name: The name of the optional claim.
+ :param List[str] additional_properties: List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ :param bool essential: Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ :param str source: The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ pulumi.set(__self__, "name", name)
+ if additional_properties is not None:
+ pulumi.set(__self__, "additional_properties", additional_properties)
+ if essential is not None:
+ pulumi.set(__self__, "essential", essential)
+ if source is not None:
+ pulumi.set(__self__, "source", source)
+
+ @property
+ @pulumi.getter
+ def name(self) -> str:
+ """
+ The name of the optional claim.
+ """
+ return pulumi.get(self, "name")
+
+ @property
+ @pulumi.getter(name="additionalProperties")
+ def additional_properties(self) -> Optional[List[str]]:
+ """
+ List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ """
+ return pulumi.get(self, "additional_properties")
+
+ @property
+ @pulumi.getter
+ def essential(self) -> Optional[bool]:
+ """
+ Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ """
+ return pulumi.get(self, "essential")
+
+ @property
+ @pulumi.getter
+ def source(self) -> Optional[str]:
+ """
+ The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ return pulumi.get(self, "source")
+
+ def _translate_property(self, prop):
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+
+
+@pulumi.output_type
+class ApplicationOptionalClaimsIdToken(dict):
+ def __init__(__self__, *,
+ name: str,
+ additional_properties: Optional[List[str]] = None,
+ essential: Optional[bool] = None,
+ source: Optional[str] = None):
+ """
+ :param str name: The display name for the application.
+ :param List[str] additional_properties: List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ :param bool essential: Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ :param str source: The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ pulumi.set(__self__, "name", name)
+ if additional_properties is not None:
+ pulumi.set(__self__, "additional_properties", additional_properties)
+ if essential is not None:
+ pulumi.set(__self__, "essential", essential)
+ if source is not None:
+ pulumi.set(__self__, "source", source)
+
+ @property
+ @pulumi.getter
+ def name(self) -> str:
+ """
+ The display name for the application.
+ """
+ return pulumi.get(self, "name")
+
+ @property
+ @pulumi.getter(name="additionalProperties")
+ def additional_properties(self) -> Optional[List[str]]:
+ """
+ List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ """
+ return pulumi.get(self, "additional_properties")
+
+ @property
+ @pulumi.getter
+ def essential(self) -> Optional[bool]:
+ """
+ Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ """
+ return pulumi.get(self, "essential")
+
+ @property
+ @pulumi.getter
+ def source(self) -> Optional[str]:
+ """
+ The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ return pulumi.get(self, "source")
+
+ def _translate_property(self, prop):
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+
+
+@pulumi.output_type
+class ApplicationRequiredResourceAccess(dict):
+ def __init__(__self__, *,
+ resource_accesses: List['outputs.ApplicationRequiredResourceAccessResourceAccess'],
+ resource_app_id: str):
+ """
+ :param List['ApplicationRequiredResourceAccessResourceAccessArgs'] resource_accesses: A collection of `resource_access` blocks as documented below.
+ :param str resource_app_id: The unique identifier for the resource that the application requires access to. This should be equal to the appId declared on the target resource application.
+ """
+ pulumi.set(__self__, "resource_accesses", resource_accesses)
+ pulumi.set(__self__, "resource_app_id", resource_app_id)
+
+ @property
+ @pulumi.getter(name="resourceAccesses")
+ def resource_accesses(self) -> List['outputs.ApplicationRequiredResourceAccessResourceAccess']:
+ """
+ A collection of `resource_access` blocks as documented below.
+ """
+ return pulumi.get(self, "resource_accesses")
+
+ @property
+ @pulumi.getter(name="resourceAppId")
+ def resource_app_id(self) -> str:
+ """
+ The unique identifier for the resource that the application requires access to. This should be equal to the appId declared on the target resource application.
+ """
+ return pulumi.get(self, "resource_app_id")
+
+ def _translate_property(self, prop):
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+
+
+@pulumi.output_type
+class ApplicationRequiredResourceAccessResourceAccess(dict):
+ def __init__(__self__, *,
+ id: str,
+ type: str):
+ """
+ :param str id: The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
+ :param str type: Specifies whether the id property references an `OAuth2Permission` or an `AppRole`. Possible values are `Scope` or `Role`.
+ """
+ pulumi.set(__self__, "id", id)
+ pulumi.set(__self__, "type", type)
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
+ """
+ The unique identifier for one of the `OAuth2Permission` or `AppRole` instances that the resource application exposes.
+ """
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter
+ def type(self) -> str:
+ """
+ Specifies whether the id property references an `OAuth2Permission` or an `AppRole`. Possible values are `Scope` or `Role`.
+ """
+ return pulumi.get(self, "type")
+
+ def _translate_property(self, prop):
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+
+
+@pulumi.output_type
+class ServicePrincipalOauth2Permission(dict):
+ def __init__(__self__, *,
+ admin_consent_description: Optional[str] = None,
+ admin_consent_display_name: Optional[str] = None,
+ id: Optional[str] = None,
+ is_enabled: Optional[bool] = None,
+ type: Optional[str] = None,
+ user_consent_description: Optional[str] = None,
+ user_consent_display_name: Optional[str] = None,
+ value: Optional[str] = None):
+ """
+ :param str admin_consent_description: The description of the admin consent.
+ :param str admin_consent_display_name: The display name of the admin consent.
+ :param str id: The unique identifier for one of the `OAuth2Permission`.
+ :param bool is_enabled: Is this permission enabled?
+ :param str type: The type of the permission.
+ :param str user_consent_description: The description of the user consent.
+ :param str user_consent_display_name: The display name of the user consent.
+ :param str value: The name of this permission.
+ """
+ if admin_consent_description is not None:
+ pulumi.set(__self__, "admin_consent_description", admin_consent_description)
+ if admin_consent_display_name is not None:
+ pulumi.set(__self__, "admin_consent_display_name", admin_consent_display_name)
+ if id is not None:
+ pulumi.set(__self__, "id", id)
+ if is_enabled is not None:
+ pulumi.set(__self__, "is_enabled", is_enabled)
+ if type is not None:
+ pulumi.set(__self__, "type", type)
+ if user_consent_description is not None:
+ pulumi.set(__self__, "user_consent_description", user_consent_description)
+ if user_consent_display_name is not None:
+ pulumi.set(__self__, "user_consent_display_name", user_consent_display_name)
+ if value is not None:
+ pulumi.set(__self__, "value", value)
+
+ @property
+ @pulumi.getter(name="adminConsentDescription")
+ def admin_consent_description(self) -> Optional[str]:
+ """
+ The description of the admin consent.
+ """
+ return pulumi.get(self, "admin_consent_description")
+
+ @property
+ @pulumi.getter(name="adminConsentDisplayName")
+ def admin_consent_display_name(self) -> Optional[str]:
+ """
+ The display name of the admin consent.
+ """
+ return pulumi.get(self, "admin_consent_display_name")
+
+ @property
+ @pulumi.getter
+ def id(self) -> Optional[str]:
+ """
+ The unique identifier for one of the `OAuth2Permission`.
+ """
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter(name="isEnabled")
+ def is_enabled(self) -> Optional[bool]:
+ """
+ Is this permission enabled?
+ """
+ return pulumi.get(self, "is_enabled")
+
+ @property
+ @pulumi.getter
+ def type(self) -> Optional[str]:
+ """
+ The type of the permission.
+ """
+ return pulumi.get(self, "type")
+
+ @property
+ @pulumi.getter(name="userConsentDescription")
+ def user_consent_description(self) -> Optional[str]:
+ """
+ The description of the user consent.
+ """
+ return pulumi.get(self, "user_consent_description")
+
+ @property
+ @pulumi.getter(name="userConsentDisplayName")
+ def user_consent_display_name(self) -> Optional[str]:
+ """
+ The display name of the user consent.
+ """
+ return pulumi.get(self, "user_consent_display_name")
+
+ @property
+ @pulumi.getter
+ def value(self) -> Optional[str]:
+ """
+ The name of this permission.
+ """
+ return pulumi.get(self, "value")
+
+ def _translate_property(self, prop):
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+
+
+@pulumi.output_type
+class GetApplicationAppRoleResult(dict):
+ def __init__(__self__, *,
+ allowed_member_types: List[str],
+ description: str,
+ display_name: str,
+ id: str,
+ is_enabled: bool,
+ value: str):
+ """
+ :param List[str] allowed_member_types: Specifies whether this app role definition can be assigned to users and groups, or to other applications (that are accessing this application in daemon service scenarios). Possible values are: `User` and `Application`, or both.
+ :param str description: Permission help text that appears in the admin app assignment and consent experiences.
+ :param str display_name: Display name for the permission that appears in the admin consent and app assignment experiences.
+ :param str id: The unique identifier of the `app_role`.
+ :param bool is_enabled: Determines if the app role is enabled.
+ :param str value: Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ pulumi.set(__self__, "allowed_member_types", allowed_member_types)
+ pulumi.set(__self__, "description", description)
+ pulumi.set(__self__, "display_name", display_name)
+ pulumi.set(__self__, "id", id)
+ pulumi.set(__self__, "is_enabled", is_enabled)
+ pulumi.set(__self__, "value", value)
+
+ @property
+ @pulumi.getter(name="allowedMemberTypes")
+ def allowed_member_types(self) -> List[str]:
+ """
+ Specifies whether this app role definition can be assigned to users and groups, or to other applications (that are accessing this application in daemon service scenarios). Possible values are: `User` and `Application`, or both.
+ """
+ return pulumi.get(self, "allowed_member_types")
+
+ @property
+ @pulumi.getter
+ def description(self) -> str:
+ """
+ Permission help text that appears in the admin app assignment and consent experiences.
+ """
+ return pulumi.get(self, "description")
+
+ @property
+ @pulumi.getter(name="displayName")
+ def display_name(self) -> str:
+ """
+ Display name for the permission that appears in the admin consent and app assignment experiences.
+ """
+ return pulumi.get(self, "display_name")
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
+ """
+ The unique identifier of the `app_role`.
+ """
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter(name="isEnabled")
+ def is_enabled(self) -> bool:
+ """
+ Determines if the app role is enabled.
+ """
+ return pulumi.get(self, "is_enabled")
+
+ @property
+ @pulumi.getter
+ def value(self) -> str:
+ """
+ Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ return pulumi.get(self, "value")
+
+
+@pulumi.output_type
+class GetApplicationOauth2PermissionResult(dict):
+ def __init__(__self__, *,
+ admin_consent_description: str,
+ admin_consent_display_name: str,
+ id: str,
+ is_enabled: bool,
+ type: str,
+ user_consent_description: str,
+ user_consent_display_name: str,
+ value: str):
+ """
+ :param str admin_consent_description: The description of the admin consent
+ :param str admin_consent_display_name: The display name of the admin consent
+ :param str id: The unique identifier of the `app_role`.
+ :param bool is_enabled: Determines if the app role is enabled.
+ :param str type: The type of the permission
+ :param str user_consent_description: The description of the user consent
+ :param str user_consent_display_name: The display name of the user consent
+ :param str value: Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ pulumi.set(__self__, "admin_consent_description", admin_consent_description)
+ pulumi.set(__self__, "admin_consent_display_name", admin_consent_display_name)
+ pulumi.set(__self__, "id", id)
+ pulumi.set(__self__, "is_enabled", is_enabled)
+ pulumi.set(__self__, "type", type)
+ pulumi.set(__self__, "user_consent_description", user_consent_description)
+ pulumi.set(__self__, "user_consent_display_name", user_consent_display_name)
+ pulumi.set(__self__, "value", value)
+
+ @property
+ @pulumi.getter(name="adminConsentDescription")
+ def admin_consent_description(self) -> str:
+ """
+ The description of the admin consent
+ """
+ return pulumi.get(self, "admin_consent_description")
+
+ @property
+ @pulumi.getter(name="adminConsentDisplayName")
+ def admin_consent_display_name(self) -> str:
+ """
+ The display name of the admin consent
+ """
+ return pulumi.get(self, "admin_consent_display_name")
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
+ """
+ The unique identifier of the `app_role`.
+ """
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter(name="isEnabled")
+ def is_enabled(self) -> bool:
+ """
+ Determines if the app role is enabled.
+ """
+ return pulumi.get(self, "is_enabled")
+
+ @property
+ @pulumi.getter
+ def type(self) -> str:
+ """
+ The type of the permission
+ """
+ return pulumi.get(self, "type")
+
+ @property
+ @pulumi.getter(name="userConsentDescription")
+ def user_consent_description(self) -> str:
+ """
+ The description of the user consent
+ """
+ return pulumi.get(self, "user_consent_description")
+
+ @property
+ @pulumi.getter(name="userConsentDisplayName")
+ def user_consent_display_name(self) -> str:
+ """
+ The display name of the user consent
+ """
+ return pulumi.get(self, "user_consent_display_name")
+
+ @property
+ @pulumi.getter
+ def value(self) -> str:
+ """
+ Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ return pulumi.get(self, "value")
+
+
+@pulumi.output_type
+class GetApplicationOptionalClaimsResult(dict):
+ def __init__(__self__, *,
+ access_tokens: Optional[List['outputs.GetApplicationOptionalClaimsAccessTokenResult']] = None,
+ id_tokens: Optional[List['outputs.GetApplicationOptionalClaimsIdTokenResult']] = None):
+ if access_tokens is not None:
+ pulumi.set(__self__, "access_tokens", access_tokens)
+ if id_tokens is not None:
+ pulumi.set(__self__, "id_tokens", id_tokens)
+
+ @property
+ @pulumi.getter(name="accessTokens")
+ def access_tokens(self) -> Optional[List['outputs.GetApplicationOptionalClaimsAccessTokenResult']]:
+ return pulumi.get(self, "access_tokens")
+
+ @property
+ @pulumi.getter(name="idTokens")
+ def id_tokens(self) -> Optional[List['outputs.GetApplicationOptionalClaimsIdTokenResult']]:
+ return pulumi.get(self, "id_tokens")
+
+
+@pulumi.output_type
+class GetApplicationOptionalClaimsAccessTokenResult(dict):
+ def __init__(__self__, *,
+ name: str,
+ additional_properties: Optional[List[str]] = None,
+ essential: Optional[bool] = None,
+ source: Optional[str] = None):
+ """
+ :param str name: Specifies the name of the Application within Azure Active Directory.
+ :param List[str] additional_properties: List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ :param bool essential: Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ :param str source: The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ pulumi.set(__self__, "name", name)
+ if additional_properties is not None:
+ pulumi.set(__self__, "additional_properties", additional_properties)
+ if essential is not None:
+ pulumi.set(__self__, "essential", essential)
+ if source is not None:
+ pulumi.set(__self__, "source", source)
+
+ @property
+ @pulumi.getter
+ def name(self) -> str:
+ """
+ Specifies the name of the Application within Azure Active Directory.
+ """
+ return pulumi.get(self, "name")
+
+ @property
+ @pulumi.getter(name="additionalProperties")
+ def additional_properties(self) -> Optional[List[str]]:
+ """
+ List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ """
+ return pulumi.get(self, "additional_properties")
+
+ @property
+ @pulumi.getter
+ def essential(self) -> Optional[bool]:
+ """
+ Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ """
+ return pulumi.get(self, "essential")
+
+ @property
+ @pulumi.getter
+ def source(self) -> Optional[str]:
+ """
+ The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ return pulumi.get(self, "source")
+
+
+@pulumi.output_type
+class GetApplicationOptionalClaimsIdTokenResult(dict):
+ def __init__(__self__, *,
+ name: str,
+ additional_properties: Optional[List[str]] = None,
+ essential: Optional[bool] = None,
+ source: Optional[str] = None):
+ """
+ :param str name: Specifies the name of the Application within Azure Active Directory.
+ :param List[str] additional_properties: List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ :param bool essential: Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ :param str source: The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ pulumi.set(__self__, "name", name)
+ if additional_properties is not None:
+ pulumi.set(__self__, "additional_properties", additional_properties)
+ if essential is not None:
+ pulumi.set(__self__, "essential", essential)
+ if source is not None:
+ pulumi.set(__self__, "source", source)
+
+ @property
+ @pulumi.getter
+ def name(self) -> str:
+ """
+ Specifies the name of the Application within Azure Active Directory.
+ """
+ return pulumi.get(self, "name")
+
+ @property
+ @pulumi.getter(name="additionalProperties")
+ def additional_properties(self) -> Optional[List[str]]:
+ """
+ List of Additional Properties of the claim. If a property exists in this list, it modifies the behaviour of the optional claim.
+ """
+ return pulumi.get(self, "additional_properties")
+
+ @property
+ @pulumi.getter
+ def essential(self) -> Optional[bool]:
+ """
+ Whether the claim specified by the client is necessary to ensure a smooth authorization experience.
+ """
+ return pulumi.get(self, "essential")
+
+ @property
+ @pulumi.getter
+ def source(self) -> Optional[str]:
+ """
+ The source of the claim. If `source` is absent, the claim is a predefined optional claim. If `source` is `user`, the value of `name` is the extension property from the user object.
+ """
+ return pulumi.get(self, "source")
+
+
+@pulumi.output_type
+class GetApplicationRequiredResourceAccessResult(dict):
+ def __init__(__self__, *,
+ resource_accesses: List['outputs.GetApplicationRequiredResourceAccessResourceAccessResult'],
+ resource_app_id: str):
+ """
+ :param List['GetApplicationRequiredResourceAccessResourceAccessArgs'] resource_accesses: A collection of `resource_access` blocks as documented below
+ :param str resource_app_id: The unique identifier for the resource that the application requires access to.
+ """
+ pulumi.set(__self__, "resource_accesses", resource_accesses)
+ pulumi.set(__self__, "resource_app_id", resource_app_id)
+
+ @property
+ @pulumi.getter(name="resourceAccesses")
+ def resource_accesses(self) -> List['outputs.GetApplicationRequiredResourceAccessResourceAccessResult']:
+ """
+ A collection of `resource_access` blocks as documented below
+ """
+ return pulumi.get(self, "resource_accesses")
+
+ @property
+ @pulumi.getter(name="resourceAppId")
+ def resource_app_id(self) -> str:
+ """
+ The unique identifier for the resource that the application requires access to.
+ """
+ return pulumi.get(self, "resource_app_id")
+
+
+@pulumi.output_type
+class GetApplicationRequiredResourceAccessResourceAccessResult(dict):
+ def __init__(__self__, *,
+ id: str,
+ type: str):
+ """
+ :param str id: The unique identifier of the `app_role`.
+ :param str type: The type of the permission
+ """
+ pulumi.set(__self__, "id", id)
+ pulumi.set(__self__, "type", type)
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
+ """
+ The unique identifier of the `app_role`.
+ """
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter
+ def type(self) -> str:
+ """
+ The type of the permission
+ """
+ return pulumi.get(self, "type")
+
+
+@pulumi.output_type
+class GetDomainsDomainResult(dict):
+ def __init__(__self__, *,
+ authentication_type: str,
+ domain_name: str,
+ is_default: bool,
+ is_initial: bool,
+ is_verified: bool):
+ """
+ :param str authentication_type: The authentication type of the domain (Managed or Federated).
+ :param str domain_name: The name of the domain.
+ :param bool is_default: `True` if this is the default domain that is used for user creation.
+ :param bool is_initial: `True` if this is the initial domain created by Azure Activie Directory.
+ :param bool is_verified: `True` if the domain has completed domain ownership verification.
+ """
+ pulumi.set(__self__, "authentication_type", authentication_type)
+ pulumi.set(__self__, "domain_name", domain_name)
+ pulumi.set(__self__, "is_default", is_default)
+ pulumi.set(__self__, "is_initial", is_initial)
+ pulumi.set(__self__, "is_verified", is_verified)
+
+ @property
+ @pulumi.getter(name="authenticationType")
+ def authentication_type(self) -> str:
+ """
+ The authentication type of the domain (Managed or Federated).
+ """
+ return pulumi.get(self, "authentication_type")
+
+ @property
+ @pulumi.getter(name="domainName")
+ def domain_name(self) -> str:
+ """
+ The name of the domain.
+ """
+ return pulumi.get(self, "domain_name")
+
+ @property
+ @pulumi.getter(name="isDefault")
+ def is_default(self) -> bool:
+ """
+ `True` if this is the default domain that is used for user creation.
+ """
+ return pulumi.get(self, "is_default")
+
+ @property
+ @pulumi.getter(name="isInitial")
+ def is_initial(self) -> bool:
+ """
+ `True` if this is the initial domain created by Azure Activie Directory.
+ """
+ return pulumi.get(self, "is_initial")
+
+ @property
+ @pulumi.getter(name="isVerified")
+ def is_verified(self) -> bool:
+ """
+ `True` if the domain has completed domain ownership verification.
+ """
+ return pulumi.get(self, "is_verified")
+
+
+@pulumi.output_type
+class GetServicePrincipalAppRoleResult(dict):
+ def __init__(__self__, *,
+ allowed_member_types: List[str],
+ description: str,
+ display_name: str,
+ id: str,
+ is_enabled: bool,
+ value: str):
+ """
+ :param List[str] allowed_member_types: Specifies whether this app role definition can be assigned to users and groups, or to other applications (that are accessing this application in daemon service scenarios). Possible values are: `User` and `Application`, or both.
+ :param str description: Permission help text that appears in the admin app assignment and consent experiences.
+ :param str display_name: The Display Name of the Azure AD Application associated with this Service Principal.
+ :param str id: The unique identifier of the `app_role`.
+ :param bool is_enabled: Determines if the app role is enabled.
+ :param str value: Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ pulumi.set(__self__, "allowed_member_types", allowed_member_types)
+ pulumi.set(__self__, "description", description)
+ pulumi.set(__self__, "display_name", display_name)
+ pulumi.set(__self__, "id", id)
+ pulumi.set(__self__, "is_enabled", is_enabled)
+ pulumi.set(__self__, "value", value)
+
+ @property
+ @pulumi.getter(name="allowedMemberTypes")
+ def allowed_member_types(self) -> List[str]:
+ """
+ Specifies whether this app role definition can be assigned to users and groups, or to other applications (that are accessing this application in daemon service scenarios). Possible values are: `User` and `Application`, or both.
+ """
+ return pulumi.get(self, "allowed_member_types")
+
+ @property
+ @pulumi.getter
+ def description(self) -> str:
+ """
+ Permission help text that appears in the admin app assignment and consent experiences.
+ """
+ return pulumi.get(self, "description")
+
+ @property
+ @pulumi.getter(name="displayName")
+ def display_name(self) -> str:
+ """
+ The Display Name of the Azure AD Application associated with this Service Principal.
+ """
+ return pulumi.get(self, "display_name")
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
+ """
+ The unique identifier of the `app_role`.
+ """
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter(name="isEnabled")
+ def is_enabled(self) -> bool:
+ """
+ Determines if the app role is enabled.
+ """
+ return pulumi.get(self, "is_enabled")
+
+ @property
+ @pulumi.getter
+ def value(self) -> str:
+ """
+ Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ return pulumi.get(self, "value")
+
+
+@pulumi.output_type
+class GetServicePrincipalOauth2PermissionResult(dict):
+ def __init__(__self__, *,
+ admin_consent_description: str,
+ admin_consent_display_name: str,
+ id: str,
+ is_enabled: bool,
+ type: str,
+ user_consent_description: str,
+ user_consent_display_name: str,
+ value: str):
+ """
+ :param str admin_consent_description: The description of the admin consent
+ :param str admin_consent_display_name: The display name of the admin consent
+ :param str id: The unique identifier of the `app_role`.
+ :param bool is_enabled: Determines if the app role is enabled.
+ :param str type: The type of the permission
+ :param str user_consent_description: The description of the user consent
+ :param str user_consent_display_name: The display name of the user consent
+ :param str value: Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ pulumi.set(__self__, "admin_consent_description", admin_consent_description)
+ pulumi.set(__self__, "admin_consent_display_name", admin_consent_display_name)
+ pulumi.set(__self__, "id", id)
+ pulumi.set(__self__, "is_enabled", is_enabled)
+ pulumi.set(__self__, "type", type)
+ pulumi.set(__self__, "user_consent_description", user_consent_description)
+ pulumi.set(__self__, "user_consent_display_name", user_consent_display_name)
+ pulumi.set(__self__, "value", value)
+
+ @property
+ @pulumi.getter(name="adminConsentDescription")
+ def admin_consent_description(self) -> str:
+ """
+ The description of the admin consent
+ """
+ return pulumi.get(self, "admin_consent_description")
+
+ @property
+ @pulumi.getter(name="adminConsentDisplayName")
+ def admin_consent_display_name(self) -> str:
+ """
+ The display name of the admin consent
+ """
+ return pulumi.get(self, "admin_consent_display_name")
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
+ """
+ The unique identifier of the `app_role`.
+ """
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter(name="isEnabled")
+ def is_enabled(self) -> bool:
+ """
+ Determines if the app role is enabled.
+ """
+ return pulumi.get(self, "is_enabled")
+
+ @property
+ @pulumi.getter
+ def type(self) -> str:
+ """
+ The type of the permission
+ """
+ return pulumi.get(self, "type")
+
+ @property
+ @pulumi.getter(name="userConsentDescription")
+ def user_consent_description(self) -> str:
+ """
+ The description of the user consent
+ """
+ return pulumi.get(self, "user_consent_description")
+
+ @property
+ @pulumi.getter(name="userConsentDisplayName")
+ def user_consent_display_name(self) -> str:
+ """
+ The display name of the user consent
+ """
+ return pulumi.get(self, "user_consent_display_name")
+
+ @property
+ @pulumi.getter
+ def value(self) -> str:
+ """
+ Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
+ """
+ return pulumi.get(self, "value")
+
+
+@pulumi.output_type
+class GetUsersUserResult(dict):
+ def __init__(__self__, *,
+ account_enabled: bool,
+ display_name: str,
+ immutable_id: str,
+ mail: str,
+ mail_nickname: str,
+ object_id: str,
+ onpremises_sam_account_name: str,
+ onpremises_user_principal_name: str,
+ usage_location: str,
+ user_principal_name: str):
+ """
+ :param bool account_enabled: `True` if the account is enabled; otherwise `False`.
+ :param str display_name: The Display Name of the Azure AD User.
+ :param str immutable_id: The value used to associate an on-premises Active Directory user account with their Azure AD user object.
+ :param str mail: The primary email address of the Azure AD User.
+ :param str mail_nickname: The email alias of the Azure AD User.
+ :param str onpremises_sam_account_name: The on premise sam account name of the Azure AD User.
+ :param str onpremises_user_principal_name: The on premise user principal name of the Azure AD User.
+ :param str usage_location: The usage location of the Azure AD User.
+ :param str user_principal_name: The User Principal Name of the Azure AD User.
+ """
+ pulumi.set(__self__, "account_enabled", account_enabled)
+ pulumi.set(__self__, "display_name", display_name)
+ pulumi.set(__self__, "immutable_id", immutable_id)
+ pulumi.set(__self__, "mail", mail)
+ pulumi.set(__self__, "mail_nickname", mail_nickname)
+ pulumi.set(__self__, "object_id", object_id)
+ pulumi.set(__self__, "onpremises_sam_account_name", onpremises_sam_account_name)
+ pulumi.set(__self__, "onpremises_user_principal_name", onpremises_user_principal_name)
+ pulumi.set(__self__, "usage_location", usage_location)
+ pulumi.set(__self__, "user_principal_name", user_principal_name)
+
+ @property
+ @pulumi.getter(name="accountEnabled")
+ def account_enabled(self) -> bool:
+ """
+ `True` if the account is enabled; otherwise `False`.
+ """
+ return pulumi.get(self, "account_enabled")
+
+ @property
+ @pulumi.getter(name="displayName")
+ def display_name(self) -> str:
+ """
+ The Display Name of the Azure AD User.
+ """
+ return pulumi.get(self, "display_name")
+
+ @property
+ @pulumi.getter(name="immutableId")
+ def immutable_id(self) -> str:
+ """
+ The value used to associate an on-premises Active Directory user account with their Azure AD user object.
+ """
+ return pulumi.get(self, "immutable_id")
+
+ @property
+ @pulumi.getter
+ def mail(self) -> str:
+ """
+ The primary email address of the Azure AD User.
+ """
+ return pulumi.get(self, "mail")
+
+ @property
+ @pulumi.getter(name="mailNickname")
+ def mail_nickname(self) -> str:
+ """
+ The email alias of the Azure AD User.
+ """
+ return pulumi.get(self, "mail_nickname")
+
+ @property
+ @pulumi.getter(name="objectId")
+ def object_id(self) -> str:
+ return pulumi.get(self, "object_id")
+
+ @property
+ @pulumi.getter(name="onpremisesSamAccountName")
+ def onpremises_sam_account_name(self) -> str:
+ """
+ The on premise sam account name of the Azure AD User.
+ """
+ return pulumi.get(self, "onpremises_sam_account_name")
+
+ @property
+ @pulumi.getter(name="onpremisesUserPrincipalName")
+ def onpremises_user_principal_name(self) -> str:
+ """
+ The on premise user principal name of the Azure AD User.
+ """
+ return pulumi.get(self, "onpremises_user_principal_name")
+
+ @property
+ @pulumi.getter(name="usageLocation")
+ def usage_location(self) -> str:
+ """
+ The usage location of the Azure AD User.
+ """
+ return pulumi.get(self, "usage_location")
+
+ @property
+ @pulumi.getter(name="userPrincipalName")
+ def user_principal_name(self) -> str:
+ """
+ The User Principal Name of the Azure AD User.
+ """
+ return pulumi.get(self, "user_principal_name")
+
+
diff --git a/sdk/python/pulumi_azuread/provider.py b/sdk/python/pulumi_azuread/provider.py
index df683c0ed..719fb6350 100644
--- a/sdk/python/pulumi_azuread/provider.py
+++ b/sdk/python/pulumi_azuread/provider.py
@@ -6,12 +6,28 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+
+__all__ = ['Provider']
class Provider(pulumi.ProviderResource):
- def __init__(__self__, resource_name, opts=None, client_certificate_password=None, client_certificate_path=None, client_id=None, client_secret=None, environment=None, msi_endpoint=None, subscription_id=None, tenant_id=None, use_msi=None, __props__=None, __name__=None, __opts__=None):
+ def __init__(__self__,
+ resource_name,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ client_certificate_password: Optional[pulumi.Input[str]] = None,
+ client_certificate_path: Optional[pulumi.Input[str]] = None,
+ client_id: Optional[pulumi.Input[str]] = None,
+ client_secret: Optional[pulumi.Input[str]] = None,
+ environment: Optional[pulumi.Input[str]] = None,
+ msi_endpoint: Optional[pulumi.Input[str]] = None,
+ subscription_id: Optional[pulumi.Input[str]] = None,
+ tenant_id: Optional[pulumi.Input[str]] = None,
+ use_msi: Optional[pulumi.Input[bool]] = None,
+ __props__=None,
+ __name__=None,
+ __opts__=None):
"""
The provider type for the azuread package. By default, resources use package-wide configuration
settings, however an explicit `Provider` instance may be created and passed during resource
@@ -32,38 +48,38 @@ def __init__(__self__, resource_name, opts=None, client_certificate_password=Non
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.version is None:
- opts.version = utilities.get_version()
+ opts.version = _utilities.get_version()
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
__props__ = dict()
if client_certificate_password is None:
- client_certificate_password = (utilities.get_env('ARM_CLIENT_CERTIFICATE_PASSWORD') or '')
+ client_certificate_password = (_utilities.get_env('ARM_CLIENT_CERTIFICATE_PASSWORD') or '')
__props__['client_certificate_password'] = client_certificate_password
if client_certificate_path is None:
- client_certificate_path = (utilities.get_env('ARM_CLIENT_CERTIFICATE_PATH') or '')
+ client_certificate_path = (_utilities.get_env('ARM_CLIENT_CERTIFICATE_PATH') or '')
__props__['client_certificate_path'] = client_certificate_path
if client_id is None:
- client_id = (utilities.get_env('ARM_CLIENT_ID') or '')
+ client_id = (_utilities.get_env('ARM_CLIENT_ID') or '')
__props__['client_id'] = client_id
if client_secret is None:
- client_secret = (utilities.get_env('ARM_CLIENT_SECRET') or '')
+ client_secret = (_utilities.get_env('ARM_CLIENT_SECRET') or '')
__props__['client_secret'] = client_secret
if environment is None:
- environment = (utilities.get_env('ARM_ENVIRONMENT') or 'public')
+ environment = (_utilities.get_env('ARM_ENVIRONMENT') or 'public')
__props__['environment'] = environment
if msi_endpoint is None:
- msi_endpoint = (utilities.get_env('ARM_MSI_ENDPOINT') or '')
+ msi_endpoint = (_utilities.get_env('ARM_MSI_ENDPOINT') or '')
__props__['msi_endpoint'] = msi_endpoint
if subscription_id is None:
- subscription_id = (utilities.get_env('ARM_SUBSCRIPTION_ID') or '')
+ subscription_id = (_utilities.get_env('ARM_SUBSCRIPTION_ID') or '')
__props__['subscription_id'] = subscription_id
if tenant_id is None:
- tenant_id = (utilities.get_env('ARM_TENANT_ID') or '')
+ tenant_id = (_utilities.get_env('ARM_TENANT_ID') or '')
__props__['tenant_id'] = tenant_id
if use_msi is None:
- use_msi = (utilities.get_env_bool('ARM_USE_MSI') or False)
+ use_msi = (_utilities.get_env_bool('ARM_USE_MSI') or False)
__props__['use_msi'] = pulumi.Output.from_input(use_msi).apply(json.dumps) if use_msi is not None else None
super(Provider, __self__).__init__(
'azuread',
@@ -72,7 +88,8 @@ def __init__(__self__, resource_name, opts=None, client_certificate_password=Non
opts)
def translate_output_property(self, prop):
- return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
def translate_input_property(self, prop):
- return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+ return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+
diff --git a/sdk/python/pulumi_azuread/service_principal.py b/sdk/python/pulumi_azuread/service_principal.py
index 2966e053d..451353aee 100644
--- a/sdk/python/pulumi_azuread/service_principal.py
+++ b/sdk/python/pulumi_azuread/service_principal.py
@@ -5,45 +5,25 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+from . import outputs
+from ._inputs import *
+
+__all__ = ['ServicePrincipal']
class ServicePrincipal(pulumi.CustomResource):
- app_role_assignment_required: pulumi.Output[bool]
- """
- Does this Service Principal require an AppRoleAssignment to a user or group before Azure AD will issue a user or access token to the application? Defaults to `false`.
- """
- application_id: pulumi.Output[str]
- """
- The ID of the Azure AD Application for which to create a Service Principal.
- """
- display_name: pulumi.Output[str]
- """
- The Display Name of the Azure Active Directory Application associated with this Service Principal.
- """
- oauth2_permissions: pulumi.Output[list]
- """
- A collection of OAuth 2.0 permissions exposed by the associated application. Each permission is covered by a `oauth2_permission` block as documented below.
-
- * `adminConsentDescription` (`str`) - The description of the admin consent.
- * `adminConsentDisplayName` (`str`) - The display name of the admin consent.
- * `id` (`str`) - The unique identifier for one of the `OAuth2Permission`.
- * `isEnabled` (`bool`) - Is this permission enabled?
- * `type` (`str`) - The type of the permission.
- * `userConsentDescription` (`str`) - The description of the user consent.
- * `userConsentDisplayName` (`str`) - The display name of the user consent.
- * `value` (`str`) - The name of this permission.
- """
- object_id: pulumi.Output[str]
- """
- The Service Principal's Object ID.
- """
- tags: pulumi.Output[list]
- """
- A list of tags to apply to the Service Principal.
- """
- def __init__(__self__, resource_name, opts=None, app_role_assignment_required=None, application_id=None, oauth2_permissions=None, tags=None, __props__=None, __name__=None, __opts__=None):
+ def __init__(__self__,
+ resource_name,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ app_role_assignment_required: Optional[pulumi.Input[bool]] = None,
+ application_id: Optional[pulumi.Input[str]] = None,
+ oauth2_permissions: Optional[pulumi.Input[List[pulumi.Input[pulumi.InputType['ServicePrincipalOauth2PermissionArgs']]]]] = None,
+ tags: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None,
+ __props__=None,
+ __name__=None,
+ __opts__=None):
"""
Manages a Service Principal associated with an Application within Azure Active Directory.
@@ -75,19 +55,8 @@ def __init__(__self__, resource_name, opts=None, app_role_assignment_required=No
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[bool] app_role_assignment_required: Does this Service Principal require an AppRoleAssignment to a user or group before Azure AD will issue a user or access token to the application? Defaults to `false`.
:param pulumi.Input[str] application_id: The ID of the Azure AD Application for which to create a Service Principal.
- :param pulumi.Input[list] oauth2_permissions: A collection of OAuth 2.0 permissions exposed by the associated application. Each permission is covered by a `oauth2_permission` block as documented below.
- :param pulumi.Input[list] tags: A list of tags to apply to the Service Principal.
-
- The **oauth2_permissions** object supports the following:
-
- * `adminConsentDescription` (`pulumi.Input[str]`) - The description of the admin consent.
- * `adminConsentDisplayName` (`pulumi.Input[str]`) - The display name of the admin consent.
- * `id` (`pulumi.Input[str]`) - The unique identifier for one of the `OAuth2Permission`.
- * `isEnabled` (`pulumi.Input[bool]`) - Is this permission enabled?
- * `type` (`pulumi.Input[str]`) - The type of the permission.
- * `userConsentDescription` (`pulumi.Input[str]`) - The description of the user consent.
- * `userConsentDisplayName` (`pulumi.Input[str]`) - The display name of the user consent.
- * `value` (`pulumi.Input[str]`) - The name of this permission.
+ :param pulumi.Input[List[pulumi.Input[pulumi.InputType['ServicePrincipalOauth2PermissionArgs']]]] oauth2_permissions: A collection of OAuth 2.0 permissions exposed by the associated application. Each permission is covered by a `oauth2_permission` block as documented below.
+ :param pulumi.Input[List[pulumi.Input[str]]] tags: A list of tags to apply to the Service Principal.
"""
if __name__ is not None:
warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning)
@@ -100,7 +69,7 @@ def __init__(__self__, resource_name, opts=None, app_role_assignment_required=No
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.version is None:
- opts.version = utilities.get_version()
+ opts.version = _utilities.get_version()
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
@@ -121,31 +90,28 @@ def __init__(__self__, resource_name, opts=None, app_role_assignment_required=No
opts)
@staticmethod
- def get(resource_name, id, opts=None, app_role_assignment_required=None, application_id=None, display_name=None, oauth2_permissions=None, object_id=None, tags=None):
+ def get(resource_name: str,
+ id: pulumi.Input[str],
+ opts: Optional[pulumi.ResourceOptions] = None,
+ app_role_assignment_required: Optional[pulumi.Input[bool]] = None,
+ application_id: Optional[pulumi.Input[str]] = None,
+ display_name: Optional[pulumi.Input[str]] = None,
+ oauth2_permissions: Optional[pulumi.Input[List[pulumi.Input[pulumi.InputType['ServicePrincipalOauth2PermissionArgs']]]]] = None,
+ object_id: Optional[pulumi.Input[str]] = None,
+ tags: Optional[pulumi.Input[List[pulumi.Input[str]]]] = None) -> 'ServicePrincipal':
"""
Get an existing ServicePrincipal resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
- :param str id: The unique provider ID of the resource to lookup.
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[bool] app_role_assignment_required: Does this Service Principal require an AppRoleAssignment to a user or group before Azure AD will issue a user or access token to the application? Defaults to `false`.
:param pulumi.Input[str] application_id: The ID of the Azure AD Application for which to create a Service Principal.
:param pulumi.Input[str] display_name: The Display Name of the Azure Active Directory Application associated with this Service Principal.
- :param pulumi.Input[list] oauth2_permissions: A collection of OAuth 2.0 permissions exposed by the associated application. Each permission is covered by a `oauth2_permission` block as documented below.
+ :param pulumi.Input[List[pulumi.Input[pulumi.InputType['ServicePrincipalOauth2PermissionArgs']]]] oauth2_permissions: A collection of OAuth 2.0 permissions exposed by the associated application. Each permission is covered by a `oauth2_permission` block as documented below.
:param pulumi.Input[str] object_id: The Service Principal's Object ID.
- :param pulumi.Input[list] tags: A list of tags to apply to the Service Principal.
-
- The **oauth2_permissions** object supports the following:
-
- * `adminConsentDescription` (`pulumi.Input[str]`) - The description of the admin consent.
- * `adminConsentDisplayName` (`pulumi.Input[str]`) - The display name of the admin consent.
- * `id` (`pulumi.Input[str]`) - The unique identifier for one of the `OAuth2Permission`.
- * `isEnabled` (`pulumi.Input[bool]`) - Is this permission enabled?
- * `type` (`pulumi.Input[str]`) - The type of the permission.
- * `userConsentDescription` (`pulumi.Input[str]`) - The description of the user consent.
- * `userConsentDisplayName` (`pulumi.Input[str]`) - The display name of the user consent.
- * `value` (`pulumi.Input[str]`) - The name of this permission.
+ :param pulumi.Input[List[pulumi.Input[str]]] tags: A list of tags to apply to the Service Principal.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -159,8 +125,57 @@ def get(resource_name, id, opts=None, app_role_assignment_required=None, applica
__props__["tags"] = tags
return ServicePrincipal(resource_name, opts=opts, __props__=__props__)
+ @property
+ @pulumi.getter(name="appRoleAssignmentRequired")
+ def app_role_assignment_required(self) -> Optional[bool]:
+ """
+ Does this Service Principal require an AppRoleAssignment to a user or group before Azure AD will issue a user or access token to the application? Defaults to `false`.
+ """
+ return pulumi.get(self, "app_role_assignment_required")
+
+ @property
+ @pulumi.getter(name="applicationId")
+ def application_id(self) -> str:
+ """
+ The ID of the Azure AD Application for which to create a Service Principal.
+ """
+ return pulumi.get(self, "application_id")
+
+ @property
+ @pulumi.getter(name="displayName")
+ def display_name(self) -> str:
+ """
+ The Display Name of the Azure Active Directory Application associated with this Service Principal.
+ """
+ return pulumi.get(self, "display_name")
+
+ @property
+ @pulumi.getter(name="oauth2Permissions")
+ def oauth2_permissions(self) -> List['outputs.ServicePrincipalOauth2Permission']:
+ """
+ A collection of OAuth 2.0 permissions exposed by the associated application. Each permission is covered by a `oauth2_permission` block as documented below.
+ """
+ return pulumi.get(self, "oauth2_permissions")
+
+ @property
+ @pulumi.getter(name="objectId")
+ def object_id(self) -> str:
+ """
+ The Service Principal's Object ID.
+ """
+ return pulumi.get(self, "object_id")
+
+ @property
+ @pulumi.getter
+ def tags(self) -> Optional[List[str]]:
+ """
+ A list of tags to apply to the Service Principal.
+ """
+ return pulumi.get(self, "tags")
+
def translate_output_property(self, prop):
- return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
def translate_input_property(self, prop):
- return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+ return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+
diff --git a/sdk/python/pulumi_azuread/service_principal_certificate.py b/sdk/python/pulumi_azuread/service_principal_certificate.py
index 0336fc40a..68ba4f656 100644
--- a/sdk/python/pulumi_azuread/service_principal_certificate.py
+++ b/sdk/python/pulumi_azuread/service_principal_certificate.py
@@ -5,40 +5,26 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+
+__all__ = ['ServicePrincipalCertificate']
class ServicePrincipalCertificate(pulumi.CustomResource):
- end_date: pulumi.Output[str]
- """
- The End Date which the Certificate is valid until, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). Changing this field forces a new resource to be created.
- """
- end_date_relative: pulumi.Output[str]
- """
- A relative duration for which the Certificate is valid until, for example `240h` (10 days) or `2400h30m`. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Changing this field forces a new resource to be created.
- """
- key_id: pulumi.Output[str]
- """
- A GUID used to uniquely identify this Certificate. If not specified a GUID will be created. Changing this field forces a new resource to be created.
- """
- service_principal_id: pulumi.Output[str]
- """
- The ID of the Service Principal for which this certificate should be created. Changing this field forces a new resource to be created.
- """
- start_date: pulumi.Output[str]
- """
- The Start Date which the Certificate is valid from, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). If this isn't specified, the current date is used. Changing this field forces a new resource to be created.
- """
- type: pulumi.Output[str]
- """
- The type of key/certificate. Must be one of `AsymmetricX509Cert` or `Symmetric`. Changing this fields forces a new resource to be created.
- """
- value: pulumi.Output[str]
- """
- The Certificate for this Service Principal.
- """
- def __init__(__self__, resource_name, opts=None, end_date=None, end_date_relative=None, key_id=None, service_principal_id=None, start_date=None, type=None, value=None, __props__=None, __name__=None, __opts__=None):
+ def __init__(__self__,
+ resource_name,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ end_date: Optional[pulumi.Input[str]] = None,
+ end_date_relative: Optional[pulumi.Input[str]] = None,
+ key_id: Optional[pulumi.Input[str]] = None,
+ service_principal_id: Optional[pulumi.Input[str]] = None,
+ start_date: Optional[pulumi.Input[str]] = None,
+ type: Optional[pulumi.Input[str]] = None,
+ value: Optional[pulumi.Input[str]] = None,
+ __props__=None,
+ __name__=None,
+ __opts__=None):
"""
Manages a Certificate associated with a Service Principal within Azure Active Directory.
@@ -80,7 +66,7 @@ def __init__(__self__, resource_name, opts=None, end_date=None, end_date_relativ
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.version is None:
- opts.version = utilities.get_version()
+ opts.version = _utilities.get_version()
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
@@ -104,13 +90,22 @@ def __init__(__self__, resource_name, opts=None, end_date=None, end_date_relativ
opts)
@staticmethod
- def get(resource_name, id, opts=None, end_date=None, end_date_relative=None, key_id=None, service_principal_id=None, start_date=None, type=None, value=None):
+ def get(resource_name: str,
+ id: pulumi.Input[str],
+ opts: Optional[pulumi.ResourceOptions] = None,
+ end_date: Optional[pulumi.Input[str]] = None,
+ end_date_relative: Optional[pulumi.Input[str]] = None,
+ key_id: Optional[pulumi.Input[str]] = None,
+ service_principal_id: Optional[pulumi.Input[str]] = None,
+ start_date: Optional[pulumi.Input[str]] = None,
+ type: Optional[pulumi.Input[str]] = None,
+ value: Optional[pulumi.Input[str]] = None) -> 'ServicePrincipalCertificate':
"""
Get an existing ServicePrincipalCertificate resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
- :param str id: The unique provider ID of the resource to lookup.
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[str] end_date: The End Date which the Certificate is valid until, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). Changing this field forces a new resource to be created.
:param pulumi.Input[str] end_date_relative: A relative duration for which the Certificate is valid until, for example `240h` (10 days) or `2400h30m`. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Changing this field forces a new resource to be created.
@@ -133,8 +128,65 @@ def get(resource_name, id, opts=None, end_date=None, end_date_relative=None, key
__props__["value"] = value
return ServicePrincipalCertificate(resource_name, opts=opts, __props__=__props__)
+ @property
+ @pulumi.getter(name="endDate")
+ def end_date(self) -> str:
+ """
+ The End Date which the Certificate is valid until, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "end_date")
+
+ @property
+ @pulumi.getter(name="endDateRelative")
+ def end_date_relative(self) -> Optional[str]:
+ """
+ A relative duration for which the Certificate is valid until, for example `240h` (10 days) or `2400h30m`. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "end_date_relative")
+
+ @property
+ @pulumi.getter(name="keyId")
+ def key_id(self) -> str:
+ """
+ A GUID used to uniquely identify this Certificate. If not specified a GUID will be created. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "key_id")
+
+ @property
+ @pulumi.getter(name="servicePrincipalId")
+ def service_principal_id(self) -> str:
+ """
+ The ID of the Service Principal for which this certificate should be created. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "service_principal_id")
+
+ @property
+ @pulumi.getter(name="startDate")
+ def start_date(self) -> str:
+ """
+ The Start Date which the Certificate is valid from, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). If this isn't specified, the current date is used. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "start_date")
+
+ @property
+ @pulumi.getter
+ def type(self) -> Optional[str]:
+ """
+ The type of key/certificate. Must be one of `AsymmetricX509Cert` or `Symmetric`. Changing this fields forces a new resource to be created.
+ """
+ return pulumi.get(self, "type")
+
+ @property
+ @pulumi.getter
+ def value(self) -> str:
+ """
+ The Certificate for this Service Principal.
+ """
+ return pulumi.get(self, "value")
+
def translate_output_property(self, prop):
- return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
def translate_input_property(self, prop):
- return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+ return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+
diff --git a/sdk/python/pulumi_azuread/service_principal_password.py b/sdk/python/pulumi_azuread/service_principal_password.py
index df17d75c8..3de192b92 100644
--- a/sdk/python/pulumi_azuread/service_principal_password.py
+++ b/sdk/python/pulumi_azuread/service_principal_password.py
@@ -5,40 +5,26 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+
+__all__ = ['ServicePrincipalPassword']
class ServicePrincipalPassword(pulumi.CustomResource):
- description: pulumi.Output[str]
- """
- A description for the Password.
- """
- end_date: pulumi.Output[str]
- """
- The End Date which the Password is valid until, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). Changing this field forces a new resource to be created.
- """
- end_date_relative: pulumi.Output[str]
- """
- A relative duration for which the Password is valid until, for example `240h` (10 days) or `2400h30m`. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Changing this field forces a new resource to be created.
- """
- key_id: pulumi.Output[str]
- """
- A GUID used to uniquely identify this Key. If not specified a GUID will be created. Changing this field forces a new resource to be created.
- """
- service_principal_id: pulumi.Output[str]
- """
- The ID of the Service Principal for which this password should be created. Changing this field forces a new resource to be created.
- """
- start_date: pulumi.Output[str]
- """
- The Start Date which the Password is valid from, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). If this isn't specified, the current date is used. Changing this field forces a new resource to be created.
- """
- value: pulumi.Output[str]
- """
- The Password for this Service Principal.
- """
- def __init__(__self__, resource_name, opts=None, description=None, end_date=None, end_date_relative=None, key_id=None, service_principal_id=None, start_date=None, value=None, __props__=None, __name__=None, __opts__=None):
+ def __init__(__self__,
+ resource_name,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ description: Optional[pulumi.Input[str]] = None,
+ end_date: Optional[pulumi.Input[str]] = None,
+ end_date_relative: Optional[pulumi.Input[str]] = None,
+ key_id: Optional[pulumi.Input[str]] = None,
+ service_principal_id: Optional[pulumi.Input[str]] = None,
+ start_date: Optional[pulumi.Input[str]] = None,
+ value: Optional[pulumi.Input[str]] = None,
+ __props__=None,
+ __name__=None,
+ __opts__=None):
"""
Manages a Password associated with a Service Principal within Azure Active Directory.
@@ -80,7 +66,7 @@ def __init__(__self__, resource_name, opts=None, description=None, end_date=None
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.version is None:
- opts.version = utilities.get_version()
+ opts.version = _utilities.get_version()
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
@@ -104,13 +90,22 @@ def __init__(__self__, resource_name, opts=None, description=None, end_date=None
opts)
@staticmethod
- def get(resource_name, id, opts=None, description=None, end_date=None, end_date_relative=None, key_id=None, service_principal_id=None, start_date=None, value=None):
+ def get(resource_name: str,
+ id: pulumi.Input[str],
+ opts: Optional[pulumi.ResourceOptions] = None,
+ description: Optional[pulumi.Input[str]] = None,
+ end_date: Optional[pulumi.Input[str]] = None,
+ end_date_relative: Optional[pulumi.Input[str]] = None,
+ key_id: Optional[pulumi.Input[str]] = None,
+ service_principal_id: Optional[pulumi.Input[str]] = None,
+ start_date: Optional[pulumi.Input[str]] = None,
+ value: Optional[pulumi.Input[str]] = None) -> 'ServicePrincipalPassword':
"""
Get an existing ServicePrincipalPassword resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
- :param str id: The unique provider ID of the resource to lookup.
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[str] description: A description for the Password.
:param pulumi.Input[str] end_date: The End Date which the Password is valid until, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). Changing this field forces a new resource to be created.
@@ -133,8 +128,65 @@ def get(resource_name, id, opts=None, description=None, end_date=None, end_date_
__props__["value"] = value
return ServicePrincipalPassword(resource_name, opts=opts, __props__=__props__)
+ @property
+ @pulumi.getter
+ def description(self) -> str:
+ """
+ A description for the Password.
+ """
+ return pulumi.get(self, "description")
+
+ @property
+ @pulumi.getter(name="endDate")
+ def end_date(self) -> str:
+ """
+ The End Date which the Password is valid until, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "end_date")
+
+ @property
+ @pulumi.getter(name="endDateRelative")
+ def end_date_relative(self) -> Optional[str]:
+ """
+ A relative duration for which the Password is valid until, for example `240h` (10 days) or `2400h30m`. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "end_date_relative")
+
+ @property
+ @pulumi.getter(name="keyId")
+ def key_id(self) -> str:
+ """
+ A GUID used to uniquely identify this Key. If not specified a GUID will be created. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "key_id")
+
+ @property
+ @pulumi.getter(name="servicePrincipalId")
+ def service_principal_id(self) -> str:
+ """
+ The ID of the Service Principal for which this password should be created. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "service_principal_id")
+
+ @property
+ @pulumi.getter(name="startDate")
+ def start_date(self) -> str:
+ """
+ The Start Date which the Password is valid from, formatted as a RFC3339 date string (e.g. `2018-01-01T01:02:03Z`). If this isn't specified, the current date is used. Changing this field forces a new resource to be created.
+ """
+ return pulumi.get(self, "start_date")
+
+ @property
+ @pulumi.getter
+ def value(self) -> str:
+ """
+ The Password for this Service Principal.
+ """
+ return pulumi.get(self, "value")
+
def translate_output_property(self, prop):
- return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
def translate_input_property(self, prop):
- return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+ return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+
diff --git a/sdk/python/pulumi_azuread/user.py b/sdk/python/pulumi_azuread/user.py
index e5ed38a28..08ec6d29d 100644
--- a/sdk/python/pulumi_azuread/user.py
+++ b/sdk/python/pulumi_azuread/user.py
@@ -5,60 +5,27 @@
import warnings
import pulumi
import pulumi.runtime
-from typing import Union
-from . import utilities, tables
+from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
+from . import _utilities, _tables
+
+__all__ = ['User']
class User(pulumi.CustomResource):
- account_enabled: pulumi.Output[bool]
- """
- `true` if the account should be enabled, otherwise `false`. Defaults to `true`.
- """
- display_name: pulumi.Output[str]
- """
- The name to display in the address book for the user.
- """
- force_password_change: pulumi.Output[bool]
- """
- `true` if the User is forced to change the password during the next sign-in. Defaults to `false`.
- """
- immutable_id: pulumi.Output[str]
- """
- The value used to associate an on-premises Active Directory user account with their Azure AD user object. This must be specified if you are using a federated domain for the user's userPrincipalName (UPN) property when creating a new user account.
- """
- mail: pulumi.Output[str]
- """
- The primary email address of the Azure AD User.
- """
- mail_nickname: pulumi.Output[str]
- """
- The mail alias for the user. Defaults to the user name part of the User Principal Name.
- """
- object_id: pulumi.Output[str]
- """
- The Object ID of the Azure AD User.
- """
- onpremises_sam_account_name: pulumi.Output[str]
- """
- The on premise sam account name of the Azure AD User.
- """
- onpremises_user_principal_name: pulumi.Output[str]
- """
- The on premise user principal name of the Azure AD User.
- """
- password: pulumi.Output[str]
- """
- The password for the User. The password must satisfy minimum requirements as specified by the password policy. The maximum length is 256 characters.
- """
- usage_location: pulumi.Output[str]
- """
- The usage location of the User. Required for users that will be assigned licenses due to legal requirement to check for availability of services in countries. The usage location is a two letter country code (ISO standard 3166). Examples include: `NO`, `JP`, and `GB`. Cannot be reset to null once set.
- """
- user_principal_name: pulumi.Output[str]
- """
- The User Principal Name of the Azure AD User.
- """
- def __init__(__self__, resource_name, opts=None, account_enabled=None, display_name=None, force_password_change=None, immutable_id=None, mail_nickname=None, password=None, usage_location=None, user_principal_name=None, __props__=None, __name__=None, __opts__=None):
+ def __init__(__self__,
+ resource_name,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ account_enabled: Optional[pulumi.Input[bool]] = None,
+ display_name: Optional[pulumi.Input[str]] = None,
+ force_password_change: Optional[pulumi.Input[bool]] = None,
+ immutable_id: Optional[pulumi.Input[str]] = None,
+ mail_nickname: Optional[pulumi.Input[str]] = None,
+ password: Optional[pulumi.Input[str]] = None,
+ usage_location: Optional[pulumi.Input[str]] = None,
+ user_principal_name: Optional[pulumi.Input[str]] = None,
+ __props__=None,
+ __name__=None,
+ __opts__=None):
"""
Manages a User within Azure Active Directory.
@@ -99,7 +66,7 @@ def __init__(__self__, resource_name, opts=None, account_enabled=None, display_n
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.version is None:
- opts.version = utilities.get_version()
+ opts.version = _utilities.get_version()
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
@@ -130,13 +97,27 @@ def __init__(__self__, resource_name, opts=None, account_enabled=None, display_n
opts)
@staticmethod
- def get(resource_name, id, opts=None, account_enabled=None, display_name=None, force_password_change=None, immutable_id=None, mail=None, mail_nickname=None, object_id=None, onpremises_sam_account_name=None, onpremises_user_principal_name=None, password=None, usage_location=None, user_principal_name=None):
+ def get(resource_name: str,
+ id: pulumi.Input[str],
+ opts: Optional[pulumi.ResourceOptions] = None,
+ account_enabled: Optional[pulumi.Input[bool]] = None,
+ display_name: Optional[pulumi.Input[str]] = None,
+ force_password_change: Optional[pulumi.Input[bool]] = None,
+ immutable_id: Optional[pulumi.Input[str]] = None,
+ mail: Optional[pulumi.Input[str]] = None,
+ mail_nickname: Optional[pulumi.Input[str]] = None,
+ object_id: Optional[pulumi.Input[str]] = None,
+ onpremises_sam_account_name: Optional[pulumi.Input[str]] = None,
+ onpremises_user_principal_name: Optional[pulumi.Input[str]] = None,
+ password: Optional[pulumi.Input[str]] = None,
+ usage_location: Optional[pulumi.Input[str]] = None,
+ user_principal_name: Optional[pulumi.Input[str]] = None) -> 'User':
"""
Get an existing User resource's state with the given name, id, and optional extra
properties used to qualify the lookup.
:param str resource_name: The unique name of the resulting resource.
- :param str id: The unique provider ID of the resource to lookup.
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[bool] account_enabled: `true` if the account should be enabled, otherwise `false`. Defaults to `true`.
:param pulumi.Input[str] display_name: The name to display in the address book for the user.
@@ -169,8 +150,105 @@ def get(resource_name, id, opts=None, account_enabled=None, display_name=None, f
__props__["user_principal_name"] = user_principal_name
return User(resource_name, opts=opts, __props__=__props__)
+ @property
+ @pulumi.getter(name="accountEnabled")
+ def account_enabled(self) -> Optional[bool]:
+ """
+ `true` if the account should be enabled, otherwise `false`. Defaults to `true`.
+ """
+ return pulumi.get(self, "account_enabled")
+
+ @property
+ @pulumi.getter(name="displayName")
+ def display_name(self) -> str:
+ """
+ The name to display in the address book for the user.
+ """
+ return pulumi.get(self, "display_name")
+
+ @property
+ @pulumi.getter(name="forcePasswordChange")
+ def force_password_change(self) -> Optional[bool]:
+ """
+ `true` if the User is forced to change the password during the next sign-in. Defaults to `false`.
+ """
+ return pulumi.get(self, "force_password_change")
+
+ @property
+ @pulumi.getter(name="immutableId")
+ def immutable_id(self) -> str:
+ """
+ The value used to associate an on-premises Active Directory user account with their Azure AD user object. This must be specified if you are using a federated domain for the user's userPrincipalName (UPN) property when creating a new user account.
+ """
+ return pulumi.get(self, "immutable_id")
+
+ @property
+ @pulumi.getter
+ def mail(self) -> str:
+ """
+ The primary email address of the Azure AD User.
+ """
+ return pulumi.get(self, "mail")
+
+ @property
+ @pulumi.getter(name="mailNickname")
+ def mail_nickname(self) -> str:
+ """
+ The mail alias for the user. Defaults to the user name part of the User Principal Name.
+ """
+ return pulumi.get(self, "mail_nickname")
+
+ @property
+ @pulumi.getter(name="objectId")
+ def object_id(self) -> str:
+ """
+ The Object ID of the Azure AD User.
+ """
+ return pulumi.get(self, "object_id")
+
+ @property
+ @pulumi.getter(name="onpremisesSamAccountName")
+ def onpremises_sam_account_name(self) -> str:
+ """
+ The on premise sam account name of the Azure AD User.
+ """
+ return pulumi.get(self, "onpremises_sam_account_name")
+
+ @property
+ @pulumi.getter(name="onpremisesUserPrincipalName")
+ def onpremises_user_principal_name(self) -> str:
+ """
+ The on premise user principal name of the Azure AD User.
+ """
+ return pulumi.get(self, "onpremises_user_principal_name")
+
+ @property
+ @pulumi.getter
+ def password(self) -> str:
+ """
+ The password for the User. The password must satisfy minimum requirements as specified by the password policy. The maximum length is 256 characters.
+ """
+ return pulumi.get(self, "password")
+
+ @property
+ @pulumi.getter(name="usageLocation")
+ def usage_location(self) -> str:
+ """
+ The usage location of the User. Required for users that will be assigned licenses due to legal requirement to check for availability of services in countries. The usage location is a two letter country code (ISO standard 3166). Examples include: `NO`, `JP`, and `GB`. Cannot be reset to null once set.
+ """
+ return pulumi.get(self, "usage_location")
+
+ @property
+ @pulumi.getter(name="userPrincipalName")
+ def user_principal_name(self) -> str:
+ """
+ The User Principal Name of the Azure AD User.
+ """
+ return pulumi.get(self, "user_principal_name")
+
def translate_output_property(self, prop):
- return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
+ return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop
def translate_input_property(self, prop):
- return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+ return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
+
diff --git a/sdk/python/setup.py b/sdk/python/setup.py
index d194617bf..5191fd62d 100644
--- a/sdk/python/setup.py
+++ b/sdk/python/setup.py
@@ -53,7 +53,7 @@ def readme():
},
install_requires=[
'parver>=0.2.1',
- 'pulumi>=2.0.0,<3.0.0',
+ 'pulumi>=2.9.0,<3.0.0',
'semver>=2.8.1'
],
zip_safe=False)