f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici/*
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici *
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici * Copyright (c) 2015 ForgeRock AS. All Rights Reserved
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici *
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * The contents of this file are subject to the terms
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * of the Common Development and Distribution License
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * (the License). You may not use this file except in
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * compliance with the License.
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici *
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * You can obtain a copy of the License at
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * http://forgerock.org/license/CDDLv1.0.html
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * See the License for the specific language governing
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * permission and limitations under the License.
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici *
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * When distributing Covered Code, include this CDDL
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * Header Notice in each file and include the License file
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * at http://forgerock.org/license/CDDLv1.0.html
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * If applicable, add the following below the CDDL Header,
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * with the fields enclosed by brackets [] replaced by
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * your own identifying information:
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici * "Portions Copyrighted [year] [name of copyright owner]"
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici *
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici * Version 1.0
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici * Author ForgeRock
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici */
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Bricipackage org.forgerock.openicf.connectors.hrdb
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Briciimport org.forgerock.openicf.connectors.hrdb.HRDBConfiguration
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Briciimport org.forgerock.openicf.misc.scriptedcommon.OperationType
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Briciimport org.identityconnectors.common.logging.Log
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Briciimport org.forgerock.openicf.misc.scriptedcommon.ICFObjectBuilder
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici/**
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici * Built-in accessible objects
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici **/
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici// OperationType is SCHEMA for this script
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Bricidef operation = operation as OperationType
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici// The configuration class created specifically for this connector
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Bricidef configuration = configuration as HRDBConfiguration
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici// Default logging facility
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Bricidef log = log as Log
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici// The schema builder object
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Bricidef builder = builder as ICFObjectBuilder
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici/**
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici * Script action - Customizable
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici *
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici * Build the schema for this connector that describes what the ICF client will see. The schema
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici * might be statically built or may be built from data retrieved from the external source.
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici *
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici * This script should use the builder object to create the schema.
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici **/
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Briciimport static org.identityconnectors.framework.common.objects.AttributeInfo.Flags.REQUIRED
a759b28900c58f487e58481d8f35d88792594047Mark Offuttimport static org.identityconnectors.framework.common.objects.AttributeInfo.Flags.MULTIVALUED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Brici/* Log something to demonstrate this script executed */
db4f02cbee52b92fd37a39aeee44dcd2272bc99cAlin Bricilog.info("Schema script, operation = " + operation.toString());
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Bricibuilder.schema({
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici objectClass {
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici type ObjectClass.ACCOUNT_NAME
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici attributes {
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici uid String.class, REQUIRED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici password String.class, REQUIRED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici firstname String.class, REQUIRED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici lastname String.class, REQUIRED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici fullname String.class, REQUIRED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici email String.class, REQUIRED
a759b28900c58f487e58481d8f35d88792594047Mark Offutt cars Map.class, MULTIVALUED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici organization String.class, REQUIRED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici }
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici }
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici objectClass {
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici type ObjectClass.GROUP_NAME
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici attributes {
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici name String.class, REQUIRED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici gid String.class, REQUIRED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici description String.class, REQUIRED
a759b28900c58f487e58481d8f35d88792594047Mark Offutt users Map.class, MULTIVALUED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici }
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici }
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici objectClass {
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici type 'organization'
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici attributes {
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici name String.class, REQUIRED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici description String.class, REQUIRED
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici }
f2b76022e244a5f1078d49d4d098f1f686062f62Alin Brici }
185941104719f48494a107996e17a23aad237c7dJon Branch})