Class IdentityProvider.Builder

    • Constructor Detail

      • Builder

        public Builder()
    • Method Detail

      • id

        public IdentityProvider.Builder id​(String id)
        Unique identifier for the SCIM Resource as defined by the Service Provider.

        Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider’s entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readOnly - required: false - returned: always - type: string - uniqueness: global

        Parameters:
        id - the value to set
        Returns:
        this builder
      • ocid

        public IdentityProvider.Builder ocid​(String ocid)
        Unique OCI identifier for the SCIM Resource.

        *SCIM++ Properties:** - caseExact: true - idcsSearchable: true - multiValued: false - mutability: immutable - required: false - returned: default - type: string - uniqueness: global

        Parameters:
        ocid - the value to set
        Returns:
        this builder
      • schemas

        public IdentityProvider.Builder schemas​(List<String> schemas)
        REQUIRED.

        The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \“enterprise\” extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: true - mutability: readWrite - required: true - returned: default - type: string - uniqueness: none

        Parameters:
        schemas - the value to set
        Returns:
        this builder
      • idcsPreventedOperations

        public IdentityProvider.Builder idcsPreventedOperations​(List<IdcsPreventedOperations> idcsPreventedOperations)
        Each value of this attribute specifies an operation that only an internal client may perform on this particular resource.

        *SCIM++ Properties:** - idcsSearchable: false - multiValued: true - mutability: readOnly - required: false - returned: request - type: string - uniqueness: none

        Parameters:
        idcsPreventedOperations - the value to set
        Returns:
        this builder
      • tags

        public IdentityProvider.Builder tags​(List<Tags> tags)
        A list of tags on this resource.

        *SCIM++ Properties:** - idcsCompositeKey: [key, value] - idcsSearchable: true - multiValued: true - mutability: readWrite - required: false - returned: request - type: complex - uniqueness: none

        Parameters:
        tags - the value to set
        Returns:
        this builder
      • deleteInProgress

        public IdentityProvider.Builder deleteInProgress​(Boolean deleteInProgress)
        A boolean flag indicating this resource in the process of being deleted.

        Usually set to true when synchronous deletion of the resource would take too long.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readOnly - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        deleteInProgress - the value to set
        Returns:
        this builder
      • idcsLastUpgradedInRelease

        public IdentityProvider.Builder idcsLastUpgradedInRelease​(String idcsLastUpgradedInRelease)
        The release number when the resource was upgraded.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readOnly - required: false - returned: request - type: string - uniqueness: none

        Parameters:
        idcsLastUpgradedInRelease - the value to set
        Returns:
        this builder
      • domainOcid

        public IdentityProvider.Builder domainOcid​(String domainOcid)
        OCI Domain Id (ocid) in which the resource lives.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readOnly - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        domainOcid - the value to set
        Returns:
        this builder
      • compartmentOcid

        public IdentityProvider.Builder compartmentOcid​(String compartmentOcid)
        OCI Compartment Id (ocid) in which the resource lives.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readOnly - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        compartmentOcid - the value to set
        Returns:
        this builder
      • tenancyOcid

        public IdentityProvider.Builder tenancyOcid​(String tenancyOcid)
        OCI Tenant Id (ocid) in which the resource lives.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readOnly - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        tenancyOcid - the value to set
        Returns:
        this builder
      • externalId

        public IdentityProvider.Builder externalId​(String externalId)
        An identifier for the Resource as defined by the Service Consumer.

        The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer’s tenant.

        *SCIM++ Properties:** - caseExact: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        externalId - the value to set
        Returns:
        this builder
      • partnerName

        public IdentityProvider.Builder partnerName​(String partnerName)
        Unique name of the trusted Identity Provider.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: true - returned: always - type: string - uniqueness: server

        Parameters:
        partnerName - the value to set
        Returns:
        this builder
      • description

        public IdentityProvider.Builder description​(String description)
        Description

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        description - the value to set
        Returns:
        this builder
      • metadata

        public IdentityProvider.Builder metadata​(String metadata)
        Metadata

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        metadata - the value to set
        Returns:
        this builder
      • partnerProviderId

        public IdentityProvider.Builder partnerProviderId​(String partnerProviderId)
        Provider ID

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: server

        Parameters:
        partnerProviderId - the value to set
        Returns:
        this builder
      • tenantProviderId

        public IdentityProvider.Builder tenantProviderId​(String tenantProviderId)
        The alternate Provider ID to be used as the Oracle Identity Cloud Service providerID (instead of the one in SamlSettings) when interacting with this IdP.

        *Added In:** 19.2.1

        *SCIM++ Properties:** - caseExact: true - idcsSearchable: false - multiValued: false - mutability: readOnly - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        tenantProviderId - the value to set
        Returns:
        this builder
      • succinctId

        public IdentityProvider.Builder succinctId​(String succinctId)
        Succinct ID

        *SCIM++ Properties:** - caseExact: true - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: server

        Parameters:
        succinctId - the value to set
        Returns:
        this builder
      • idpSsoUrl

        public IdentityProvider.Builder idpSsoUrl​(String idpSsoUrl)
        Identity Provider SSO URL

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        idpSsoUrl - the value to set
        Returns:
        this builder
      • logoutRequestUrl

        public IdentityProvider.Builder logoutRequestUrl​(String logoutRequestUrl)
        Logout request URL

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        logoutRequestUrl - the value to set
        Returns:
        this builder
      • logoutResponseUrl

        public IdentityProvider.Builder logoutResponseUrl​(String logoutResponseUrl)
        Logout response URL

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        logoutResponseUrl - the value to set
        Returns:
        this builder
      • signingCertificate

        public IdentityProvider.Builder signingCertificate​(String signingCertificate)
        Signing certificate

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        signingCertificate - the value to set
        Returns:
        this builder
      • encryptionCertificate

        public IdentityProvider.Builder encryptionCertificate​(String encryptionCertificate)
        Encryption certificate

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        encryptionCertificate - the value to set
        Returns:
        this builder
      • nameIdFormat

        public IdentityProvider.Builder nameIdFormat​(String nameIdFormat)
        Default authentication request name ID format.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        nameIdFormat - the value to set
        Returns:
        this builder
      • includeSigningCertInSignature

        public IdentityProvider.Builder includeSigningCertInSignature​(Boolean includeSigningCertInSignature)
        Set to true to include the signing certificate in the signature.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        includeSigningCertInSignature - the value to set
        Returns:
        this builder
      • authnRequestBinding

        public IdentityProvider.Builder authnRequestBinding​(IdentityProvider.AuthnRequestBinding authnRequestBinding)
        HTTP binding to use for authentication requests.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        authnRequestBinding - the value to set
        Returns:
        this builder
      • logoutBinding

        public IdentityProvider.Builder logoutBinding​(IdentityProvider.LogoutBinding logoutBinding)
        HTTP binding to use for logout.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        logoutBinding - the value to set
        Returns:
        this builder
      • logoutEnabled

        public IdentityProvider.Builder logoutEnabled​(Boolean logoutEnabled)
        Set to true to enable logout.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        logoutEnabled - the value to set
        Returns:
        this builder
      • signatureHashAlgorithm

        public IdentityProvider.Builder signatureHashAlgorithm​(IdentityProvider.SignatureHashAlgorithm signatureHashAlgorithm)
        Signature hash algorithm.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        signatureHashAlgorithm - the value to set
        Returns:
        this builder
      • enabled

        public IdentityProvider.Builder enabled​(Boolean enabled)
        Set to true to indicate Partner enabled.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: true - returned: default - type: boolean - uniqueness: none

        Parameters:
        enabled - the value to set
        Returns:
        this builder
      • iconUrl

        public IdentityProvider.Builder iconUrl​(String iconUrl)
        Identity Provider Icon URL.

        *SCIM++ Properties:** - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        iconUrl - the value to set
        Returns:
        this builder
      • shownOnLoginPage

        public IdentityProvider.Builder shownOnLoginPage​(Boolean shownOnLoginPage)
        Set to true to indicate whether to show IdP in login page or not.

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        shownOnLoginPage - the value to set
        Returns:
        this builder
      • jitUserProvEnabled

        public IdentityProvider.Builder jitUserProvEnabled​(Boolean jitUserProvEnabled)
        Set to true to indicate JIT User Provisioning is enabled

        *Added In:** 20.1.3

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        jitUserProvEnabled - the value to set
        Returns:
        this builder
      • jitUserProvGroupAssertionAttributeEnabled

        public IdentityProvider.Builder jitUserProvGroupAssertionAttributeEnabled​(Boolean jitUserProvGroupAssertionAttributeEnabled)
        Set to true to indicate JIT User Provisioning Groups should be assigned based on assertion attribute

        *Added In:** 20.1.3

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        jitUserProvGroupAssertionAttributeEnabled - the value to set
        Returns:
        this builder
      • jitUserProvGroupStaticListEnabled

        public IdentityProvider.Builder jitUserProvGroupStaticListEnabled​(Boolean jitUserProvGroupStaticListEnabled)
        Set to true to indicate JIT User Provisioning Groups should be assigned from a static list

        *Added In:** 20.1.3

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        jitUserProvGroupStaticListEnabled - the value to set
        Returns:
        this builder
      • jitUserProvCreateUserEnabled

        public IdentityProvider.Builder jitUserProvCreateUserEnabled​(Boolean jitUserProvCreateUserEnabled)
        Set to true to indicate JIT User Creation is enabled

        *Added In:** 20.1.3

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        jitUserProvCreateUserEnabled - the value to set
        Returns:
        this builder
      • jitUserProvAttributeUpdateEnabled

        public IdentityProvider.Builder jitUserProvAttributeUpdateEnabled​(Boolean jitUserProvAttributeUpdateEnabled)
        Set to true to indicate JIT User Creation is enabled

        *Added In:** 20.1.3

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        jitUserProvAttributeUpdateEnabled - the value to set
        Returns:
        this builder
      • jitUserProvGroupAssignmentMethod

        public IdentityProvider.Builder jitUserProvGroupAssignmentMethod​(IdentityProvider.JitUserProvGroupAssignmentMethod jitUserProvGroupAssignmentMethod)
        The default value is ‘Overwrite’, which tells Just-In-Time user-provisioning to replace any current group-assignments for a User with those assigned by assertions and/or those assigned statically.

        Specify ‘Merge’ if you want Just-In-Time user-provisioning to combine its group-assignments with those the user already has.

        *Added In:** 20.1.3

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        jitUserProvGroupAssignmentMethod - the value to set
        Returns:
        this builder
      • jitUserProvGroupMappingMode

        public IdentityProvider.Builder jitUserProvGroupMappingMode​(IdentityProvider.JitUserProvGroupMappingMode jitUserProvGroupMappingMode)
        Property to indicate the mode of group mapping

        *Added In:** 2205120021

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        jitUserProvGroupMappingMode - the value to set
        Returns:
        this builder
      • jitUserProvGroupSAMLAttributeName

        public IdentityProvider.Builder jitUserProvGroupSAMLAttributeName​(String jitUserProvGroupSAMLAttributeName)
        Name of the assertion attribute containing the users groups

        *Added In:** 20.1.3

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        jitUserProvGroupSAMLAttributeName - the value to set
        Returns:
        this builder
      • serviceInstanceIdentifier

        public IdentityProvider.Builder serviceInstanceIdentifier​(String serviceInstanceIdentifier)
        The serviceInstanceIdentifier of the App that hosts this IdP.

        This value will match the opcServiceInstanceGUID of any service-instance that the IdP represents.

        *Added In:** 18.2.6

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: never - type: string - uniqueness: server

        Parameters:
        serviceInstanceIdentifier - the value to set
        Returns:
        this builder
      • userMappingMethod

        public IdentityProvider.Builder userMappingMethod​(IdentityProvider.UserMappingMethod userMappingMethod)
        User mapping method.

        *Deprecated Since: 20.1.3**

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none - idcsValuePersistedInOtherAttribute: true

        Parameters:
        userMappingMethod - the value to set
        Returns:
        this builder
      • userMappingStoreAttribute

        public IdentityProvider.Builder userMappingStoreAttribute​(String userMappingStoreAttribute)
        This property specifies the userstore attribute value that must match the incoming assertion attribute value or the incoming nameid attribute value in order to identify the user during SSO.
        You can construct the userMappingStoreAttribute value by specifying attributes from the Oracle Identity Cloud Service Core Users schema.

        For examples of how to construct the userMappingStoreAttribute value, see the Example of a Request Body section of the Examples tab for the POST and PUT methods of the /IdentityProviders endpoint.

        *Deprecated Since: 20.1.3**

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none - idcsValuePersistedInOtherAttribute: true

        Parameters:
        userMappingStoreAttribute - the value to set
        Returns:
        this builder
      • assertionAttribute

        public IdentityProvider.Builder assertionAttribute​(String assertionAttribute)
        Assertion attribute name.

        *Deprecated Since: 20.1.3**

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: true - multiValued: false - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none - idcsValuePersistedInOtherAttribute: true

        Parameters:
        assertionAttribute - the value to set
        Returns:
        this builder
      • type

        public IdentityProvider.Builder type​(IdentityProvider.Type type)
        Identity Provider Type

        *Added In:** 20.1.3

        *SCIM++ Properties:** - caseExact: true - idcsSearchable: true - multiValued: false - mutability: immutable - required: false - returned: always - type: string - uniqueness: none

        Parameters:
        type - the value to set
        Returns:
        this builder
      • requireForceAuthn

        public IdentityProvider.Builder requireForceAuthn​(Boolean requireForceAuthn)
        This SP requires requests SAML IdP to enforce re-authentication.

        *Added In:** 2102181953

        *SCIM++ Properties:** - caseExact: true - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        requireForceAuthn - the value to set
        Returns:
        this builder
      • requiresEncryptedAssertion

        public IdentityProvider.Builder requiresEncryptedAssertion​(Boolean requiresEncryptedAssertion)
        SAML SP must accept encrypted assertion only.

        *Added In:** 2102181953

        *SCIM++ Properties:** - caseExact: true - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        requiresEncryptedAssertion - the value to set
        Returns:
        this builder
      • samlHoKRequired

        public IdentityProvider.Builder samlHoKRequired​(Boolean samlHoKRequired)
        SAML SP HoK Enabled.

        *Added In:** 2102181953

        *SCIM++ Properties:** - caseExact: true - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        samlHoKRequired - the value to set
        Returns:
        this builder
      • requestedAuthenticationContext

        public IdentityProvider.Builder requestedAuthenticationContext​(List<String> requestedAuthenticationContext)
        SAML SP authentication type.

        *Added In:** 2102181953

        *SCIM++ Properties:** - caseExact: true - idcsSearchable: false - multiValued: true - mutability: readWrite - required: false - returned: default - type: string - uniqueness: none

        Parameters:
        requestedAuthenticationContext - the value to set
        Returns:
        this builder
      • jitUserProvIgnoreErrorOnAbsentGroups

        public IdentityProvider.Builder jitUserProvIgnoreErrorOnAbsentGroups​(Boolean jitUserProvIgnoreErrorOnAbsentGroups)
        Set to true to indicate ignoring absence of group while provisioning

        *Added In:** 2111112015

        *SCIM++ Properties:** - caseExact: false - idcsAddedSinceVersion: 30 - idcsSearchable: false - multiValued: false - mutability: readWrite - required: false - returned: default - type: boolean - uniqueness: none

        Parameters:
        jitUserProvIgnoreErrorOnAbsentGroups - the value to set
        Returns:
        this builder
      • lastNotificationSentTime

        public IdentityProvider.Builder lastNotificationSentTime​(String lastNotificationSentTime)
        Records the notification timestamp for the IdP whose signing certificate is about to expire

        *Added In:** 2302092332

        *SCIM++ Properties:** - caseExact: false - idcsSearchable: false - multiValued: false - mutability: readOnly - required: false - returned: default - type: dateTime - uniqueness: none

        Parameters:
        lastNotificationSentTime - the value to set
        Returns:
        this builder
      • jitUserProvGroupMappings

        public IdentityProvider.Builder jitUserProvGroupMappings​(List<IdentityProviderJitUserProvGroupMappings> jitUserProvGroupMappings)
        The list of mappings between the Identity Domain Group and the IDP group.

        *Added In:** 2205120021

        *SCIM++ Properties:** - idcsCompositeKey: [idpGroup] - multiValued: true - mutability: readWrite - required: false - returned: default - type: complex - uniqueness: none

        Parameters:
        jitUserProvGroupMappings - the value to set
        Returns:
        this builder
      • jitUserProvAssignedGroups

        public IdentityProvider.Builder jitUserProvAssignedGroups​(List<IdentityProviderJitUserProvAssignedGroups> jitUserProvAssignedGroups)
        Refers to every group of which a JIT-provisioned User should be a member.

        Just-in-Time user-provisioning applies this static list when jitUserProvGroupStaticListEnabled:true.

        *Added In:** 20.1.3

        *SCIM++ Properties:** - idcsCompositeKey: [value] - idcsSearchable: false - multiValued: true - mutability: readWrite - required: false - returned: default - type: complex - uniqueness: none

        Parameters:
        jitUserProvAssignedGroups - the value to set
        Returns:
        this builder