private Resource createResource(StackServiceResponse response, Set<String> requestedIds) {
    Resource resource = new ResourceImpl(Type.StackService);

    setResourceProperty(resource, STACK_NAME_PROPERTY_ID,
        response.getStackName(), requestedIds);

      setResourceProperty(resource, SERVICE_NAME_PROPERTY_ID,
          response.getServiceName(), requestedIds);

      setResourceProperty(resource, SERVICE_TYPE_PROPERTY_ID,
		  response.getServiceType(), requestedIds);

    setResourceProperty(resource, STACK_VERSION_PROPERTY_ID,
        response.getStackVersion(), requestedIds);

    setResourceProperty(resource, SERVICE_NAME_PROPERTY_ID,
        response.getServiceName(), requestedIds);

    setResourceProperty(resource, SERVICE_DISPLAY_NAME_PROPERTY_ID,
        response.getServiceDisplayName(), requestedIds);

    setResourceProperty(resource, USER_NAME_PROPERTY_ID,
        response.getUserName(), requestedIds);

    setResourceProperty(resource, COMMENTS_PROPERTY_ID,
        response.getComments(), requestedIds);

    setResourceProperty(resource, VERSION_PROPERTY_ID,
        response.getServiceVersion(), requestedIds);

    setResourceProperty(resource, SELECTION_PROPERTY_ID,
        response.getSelection(), requestedIds);

    setResourceProperty(resource, MAINTAINER_PROPERTY_ID,
        response.getMaintainer(), requestedIds);

    setResourceProperty(resource, CONFIG_TYPES,
        response.getConfigTypes(), requestedIds);

    setResourceProperty(resource, REQUIRED_SERVICES_ID,
        response.getRequiredServices(), requestedIds);

    setResourceProperty(resource, SERVICE_CHECK_SUPPORTED_PROPERTY_ID,
        response.isServiceCheckSupported(), requestedIds);

    setResourceProperty(resource, CUSTOM_COMMANDS_PROPERTY_ID,
        response.getCustomCommands(), requestedIds);

    setResourceProperty(resource, SERVICE_PROPERTIES_PROPERTY_ID,
        response.getServiceProperties(), requestedIds);

    setResourceProperty(resource, CREDENTIAL_STORE_SUPPORTED,
        response.isCredentialStoreSupported(), requestedIds);

    setResourceProperty(resource, CREDENTIAL_STORE_REQUIRED,
        response.isCredentialStoreRequired(), requestedIds);

    setResourceProperty(resource, CREDENTIAL_STORE_ENABLED,
        response.isCredentialStoreEnabled(), requestedIds);

    setResourceProperty(resource, SUPPORT_DELETE_VIA_UI,
        response.isSupportDeleteViaUI(), requestedIds);

    setResourceProperty(resource, ROLLING_RESTART_SUPPORTED_PROPERTY_ID,
        response.isRollingRestartSupported(),  requestedIds);


    setResourceProperty(resource, SSO_INTEGRATION_SUPPORTED_PROPERTY_ID, response.isSsoIntegrationSupported(), requestedIds);
    setResourceProperty(resource, SSO_INTEGRATION_REQUIRES_KERBEROS_PROPERTY_ID, response.isSsoIntegrationRequiresKerberos(), requestedIds);
    setResourceProperty(resource, LDAP_INTEGRATION_SUPPORTED_PROPERTY_ID, response.isLdapIntegrationSupported(), requestedIds);

    return resource;
  }
KerberosServiceDescriptorFactory used to create KerberosServiceDescriptor instances
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackServiceResourceProvider.java