Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See License.txt in the project root for license information.
/** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for * license information. */
package com.microsoft.azure.management.appservice; import com.microsoft.azure.management.apigeneration.Beta; import com.microsoft.azure.management.apigeneration.Fluent; import com.microsoft.azure.management.resources.fluentcore.arm.models.ExternalChildResource; import com.microsoft.azure.management.resources.fluentcore.arm.models.Resource; import com.microsoft.azure.management.resources.fluentcore.model.Attachable; import com.microsoft.azure.management.resources.fluentcore.model.HasInner; import com.microsoft.azure.management.appservice.implementation.HostNameBindingInner;
An immutable representation of a host name binding.
/** * An immutable representation of a host name binding. */
@Fluent(ContainerName = "/Microsoft.Azure.Management.AppService.Fluent") @Beta public interface HostNameBinding extends HasInner<HostNameBindingInner>, ExternalChildResource<HostNameBinding, WebAppBase>, Resource {
Returns:the web app name
/** * @return the web app name */
String webAppName();
Returns:the fully qualified ARM domain resource URI
/** * @return the fully qualified ARM domain resource URI */
String domainId();
Returns:Azure resource name to bind to
/** * @return Azure resource name to bind to */
String azureResourceName();
Returns:Azure resource type
/** * @return Azure resource type */
AzureResourceType azureResourceType();
Returns:custom DNS record type
/** * @return custom DNS record type */
CustomHostNameDnsRecordType dnsRecordType();
Returns:the host name type
/** * @return the host name type */
HostNameType hostNameType();
The entirety of a hostname binding definition.
Type parameters:
/** * The entirety of a hostname binding definition. * @param <ParentT> the return type of the final {@link Attachable#attach()} */
interface Definition<ParentT> extends DefinitionStages.Blank<ParentT>, DefinitionStages.WithDomain<ParentT>, DefinitionStages.WithSubDomain<ParentT>, DefinitionStages.WithHostNameDnsRecordType<ParentT>, DefinitionStages.WithAttach<ParentT> { }
Grouping of hostname binding definition stages applicable as part of a web app creation.
/** * Grouping of hostname binding definition stages applicable as part of a web app creation. */
interface DefinitionStages {
The first stage of a host name binding definition.
Type parameters:
  • <ParentT> – the stage of the parent definition to return to after attaching this definition
/** * The first stage of a host name binding definition. * @param <ParentT> the stage of the parent definition to return to after attaching this definition */
interface Blank<ParentT> extends WithDomain<ParentT> { }
The stage of a hostname binding definition allowing domain to be specified.
Type parameters:
  • <ParentT> – the stage of the parent definition to return to after attaching this definition
/** * The stage of a hostname binding definition allowing domain to be specified. * @param <ParentT> the stage of the parent definition to return to after attaching this definition */
interface WithDomain<ParentT> {
Binds to a domain purchased from Azure.
Params:
  • domain – the domain purchased from Azure
Returns:the next stage of the definition
/** * Binds to a domain purchased from Azure. * @param domain the domain purchased from Azure * @return the next stage of the definition */
WithSubDomain<ParentT> withAzureManagedDomain(AppServiceDomain domain);
Binds to a 3rd party domain.
Params:
  • domain – the 3rd party domain name
Returns:the next stage of the definition
/** * Binds to a 3rd party domain. * @param domain the 3rd party domain name * @return the next stage of the definition */
WithSubDomain<ParentT> withThirdPartyDomain(String domain); }
The stage of a hostname binding definition allowing sub-domain to be specified.
Type parameters:
  • <ParentT> – the stage of the parent definition to return to after attaching this definition
/** * The stage of a hostname binding definition allowing sub-domain to be specified. * @param <ParentT> the stage of the parent definition to return to after attaching this definition */
interface WithSubDomain<ParentT> {
Specifies the sub-domain to bind to.
Params:
  • subDomain – the sub-domain name excluding the top level domain, e.g., "@", "www"
Returns:the next stage of the definition
/** * Specifies the sub-domain to bind to. * @param subDomain the sub-domain name excluding the top level domain, e.g., "@", "www" * @return the next stage of the definition */
WithHostNameDnsRecordType<ParentT> withSubDomain(String subDomain); }
The stage of a hostname binding definition allowing DNS record type to be set.
Type parameters:
  • <ParentT> – the stage of the parent definition to return to after attaching this definition
/** * The stage of a hostname binding definition allowing DNS record type to be set. * @param <ParentT> the stage of the parent definition to return to after attaching this definition */
interface WithHostNameDnsRecordType<ParentT> {
Specifies the DNS record type.
Params:
  • hostNameDnsRecordType – the DNS record type
Returns:the next stage of the definition
/** * Specifies the DNS record type. * @param hostNameDnsRecordType the DNS record type * @return the next stage of the definition */
WithAttach<ParentT> withDnsRecordType(CustomHostNameDnsRecordType hostNameDnsRecordType); }
The final stage of the hostname binding definition.

At this stage, any remaining optional settings can be specified, or the hostname binding definition can be attached to the parent web app definition using InDefinition.attach().

Type parameters:
/** * The final stage of the hostname binding definition. * <p> * At this stage, any remaining optional settings can be specified, or the hostname binding definition * can be attached to the parent web app definition using {@link WithAttach#attach()}. * @param <ParentT> the return type of {@link WithAttach#attach()} */
interface WithAttach<ParentT> extends Attachable.InDefinition<ParentT> { } }
The entirety of a hostname binding definition as part of a web app update.
Type parameters:
/** * The entirety of a hostname binding definition as part of a web app update. * @param <ParentT> the return type of the final {@link UpdateDefinitionStages.WithAttach#attach()} */
interface UpdateDefinition<ParentT> extends UpdateDefinitionStages.Blank<ParentT>, UpdateDefinitionStages.WithDomain<ParentT>, UpdateDefinitionStages.WithSubDomain<ParentT>, UpdateDefinitionStages.WithHostNameDnsRecordType<ParentT>, UpdateDefinitionStages.WithAttach<ParentT> { }
Grouping of host name binding definition stages applicable as part of a web app creation.
/** * Grouping of host name binding definition stages applicable as part of a web app creation. */
interface UpdateDefinitionStages {
The first stage of a host name binding definition.
Type parameters:
  • <ParentT> – the stage of the parent definition to return to after attaching this definition
/** * The first stage of a host name binding definition. * @param <ParentT> the stage of the parent definition to return to after attaching this definition */
interface Blank<ParentT> extends WithDomain<ParentT> { }
The stage of a hostname binding definition allowing domain to be specified.
Type parameters:
  • <ParentT> – the stage of the parent definition to return to after attaching this definition
/** * The stage of a hostname binding definition allowing domain to be specified. * @param <ParentT> the stage of the parent definition to return to after attaching this definition */
interface WithDomain<ParentT> {
Binds to a domain purchased from Azure.
Params:
  • domain – the domain purchased from Azure
Returns:the next stage of the definition
/** * Binds to a domain purchased from Azure. * @param domain the domain purchased from Azure * @return the next stage of the definition */
WithSubDomain<ParentT> withAzureManagedDomain(AppServiceDomain domain);
Binds to a 3rd party domain.
Params:
  • domain – the 3rd party domain name
Returns:the next stage of the definition
/** * Binds to a 3rd party domain. * @param domain the 3rd party domain name * @return the next stage of the definition */
WithSubDomain<ParentT> withThirdPartyDomain(String domain); }
The stage of a hostname binding definition allowing sub-domain to be specified.
Type parameters:
  • <ParentT> – the stage of the parent definition to return to after attaching this definition
/** * The stage of a hostname binding definition allowing sub-domain to be specified. * @param <ParentT> the stage of the parent definition to return to after attaching this definition */
interface WithSubDomain<ParentT> {
Specifies the sub-domain to bind to.
Params:
  • subDomain – the sub-domain name excluding the top level domain, e.g., "@", "www"
Returns:the next stage of the definition
/** * Specifies the sub-domain to bind to. * @param subDomain the sub-domain name excluding the top level domain, e.g., "@", "www" * @return the next stage of the definition */
WithHostNameDnsRecordType<ParentT> withSubDomain(String subDomain); }
The stage of a hostname binding definition allowing DNS record type to be set.
Type parameters:
  • <ParentT> – the stage of the parent definition to return to after attaching this definition
/** * The stage of a hostname binding definition allowing DNS record type to be set. * @param <ParentT> the stage of the parent definition to return to after attaching this definition */
interface WithHostNameDnsRecordType<ParentT> {
Specifies the DNS record type.
Params:
  • hostNameDnsRecordType – the DNS record type
Returns:the next stage of the definition
/** * Specifies the DNS record type. * @param hostNameDnsRecordType the DNS record type * @return the next stage of the definition */
WithAttach<ParentT> withDnsRecordType(CustomHostNameDnsRecordType hostNameDnsRecordType); }
The final stage of the hostname binding definition.

At this stage, any remaining optional settings can be specified, or the hostname binding definition can be attached to the parent web app update using InUpdate.attach().

Type parameters:
/** * The final stage of the hostname binding definition. * <p> * At this stage, any remaining optional settings can be specified, or the hostname binding definition * can be attached to the parent web app update using {@link WithAttach#attach()}. * @param <ParentT> the return type of {@link WithAttach#attach()} */
interface WithAttach<ParentT> extends Attachable.InUpdate<ParentT> { } } }