diff --git a/accessEntity/api_response.go b/accessEntity/api_response.go
index a743bfb..6ebfb93 100644
--- a/accessEntity/api_response.go
+++ b/accessEntity/api_response.go
@@ -18,230 +18,230 @@
 
 type ApiProductSuccessResponse struct {
 	// api product
-	ApiProduct *ApiProductDetails `json:"apiProduct,omitempty"`
+	ApiProduct *ApiProductDetails `json:"apiProduct"`
 	// Organization Identifier/Name
-	Organization string `json:"organization,omitempty"`
+	Organization string `json:"organization"`
 	// primary identifier type
-	PrimaryIdentifierType string `json:"primaryIdentifierType,omitempty"`
+	PrimaryIdentifierType string `json:"primaryIdentifierType"`
 	// primary identifier value
-	PrimaryIdentifierValue string `json:"primaryIdentifierValue,omitempty"`
+	PrimaryIdentifierValue string `json:"primaryIdentifierValue"`
 	// secondary identifier type
-	SecondaryIdentifierType string `json:"secondaryIdentifierType,omitempty"`
+	SecondaryIdentifierType string `json:"secondaryIdentifierType"`
 	// secondary identifier value
-	SecondaryIdentifierValue string `json:"secondaryIdentifierValue,omitempty"`
+	SecondaryIdentifierValue string `json:"secondaryIdentifierValue"`
 }
 
 type AppCredentialSuccessResponse struct {
 	// app credential
-	AppCredential *AppCredentialDetails `json:"appCredential,omitempty"`
+	AppCredential *AppCredentialDetails `json:"appCredential"`
 	// Organization Identifier/Name
-	Organization string `json:"organization,omitempty"`
+	Organization string `json:"organization"`
 	// primary identifier type
-	PrimaryIdentifierType string `json:"primaryIdentifierType,omitempty"`
+	PrimaryIdentifierType string `json:"primaryIdentifierType"`
 	// primary identifier value
-	PrimaryIdentifierValue string `json:"primaryIdentifierValue,omitempty"`
+	PrimaryIdentifierValue string `json:"primaryIdentifierValue"`
 }
 
 type AppSuccessResponse struct {
 	// app
-	App *AppDetails `json:"app,omitempty"`
+	App *AppDetails `json:"app"`
 	// Organization Identifier/Name
-	Organization string `json:"organization,omitempty"`
+	Organization string `json:"organization"`
 	// primary identifier type
-	PrimaryIdentifierType string `json:"primaryIdentifierType,omitempty"`
+	PrimaryIdentifierType string `json:"primaryIdentifierType"`
 	// primary identifier value
-	PrimaryIdentifierValue string `json:"primaryIdentifierValue,omitempty"`
+	PrimaryIdentifierValue string `json:"primaryIdentifierValue"`
 	// secondary identifier type
-	SecondaryIdentifierType string `json:"secondaryIdentifierType,omitempty"`
+	SecondaryIdentifierType string `json:"secondaryIdentifierType"`
 	// secondary identifier value
-	SecondaryIdentifierValue string `json:"secondaryIdentifierValue,omitempty"`
+	SecondaryIdentifierValue string `json:"secondaryIdentifierValue"`
 }
 
 type CompanyDevelopersSuccessResponse struct {
 	// company developers
 	CompanyDevelopers []*CompanyDeveloperDetails `json:"companyDevelopers"`
 	// Organization Identifier/Name
-	Organization string `json:"organization,omitempty"`
+	Organization string `json:"organization"`
 	// primary identifier type
-	PrimaryIdentifierType string `json:"primaryIdentifierType,omitempty"`
+	PrimaryIdentifierType string `json:"primaryIdentifierType"`
 	// primary identifier value
-	PrimaryIdentifierValue string `json:"primaryIdentifierValue,omitempty"`
+	PrimaryIdentifierValue string `json:"primaryIdentifierValue"`
 }
 
 type CompanySuccessResponse struct {
 	// company
-	Company *CompanyDetails `json:"company,omitempty"`
+	Company *CompanyDetails `json:"company"`
 	// Organization Identifier/Name
-	Organization string `json:"organization,omitempty"`
+	Organization string `json:"organization"`
 	// primary identifier type
-	PrimaryIdentifierType string `json:"primaryIdentifierType,omitempty"`
+	PrimaryIdentifierType string `json:"primaryIdentifierType"`
 	// primary identifier value
-	PrimaryIdentifierValue string `json:"primaryIdentifierValue,omitempty"`
+	PrimaryIdentifierValue string `json:"primaryIdentifierValue"`
 }
 
 type DeveloperSuccessResponse struct {
 	// developer
-	Developer *DeveloperDetails `json:"developer,omitempty"`
+	Developer *DeveloperDetails `json:"developer"`
 	// Organization Identifier/Name
-	Organization string `json:"organization,omitempty"`
+	Organization string `json:"organization"`
 	// primary identifier type
-	PrimaryIdentifierType string `json:"primaryIdentifierType,omitempty"`
+	PrimaryIdentifierType string `json:"primaryIdentifierType"`
 	// primary identifier value
-	PrimaryIdentifierValue string `json:"primaryIdentifierValue,omitempty"`
+	PrimaryIdentifierValue string `json:"primaryIdentifierValue"`
 }
 
 type ApiProductDetails struct {
 	// api proxies
-	ApiProxies []string `json:"apiProxies,omitempty"`
+	ApiProxies []string `json:"apiProxies"`
 	// api resources
-	ApiResources []string `json:"apiResources,omitempty"`
+	ApiResources []string `json:"apiResources"`
 	// approval type
-	ApprovalType string `json:"approvalType,omitempty"`
+	ApprovalType string `json:"approvalType"`
 	// Attributes associated with the apiproduct.
-	Attributes []common.Attribute `json:"attributes,omitempty"`
+	Attributes []common.Attribute `json:"attributes"`
 	// ISO-8601
-	CreatedAt string `json:"createdAt,omitempty"`
+	CreatedAt string `json:"createdAt"`
 	// created by
-	CreatedBy string `json:"createdBy,omitempty"`
+	CreatedBy string `json:"createdBy"`
 	// description
-	Description string `json:"description,omitempty"`
+	Description string `json:"description"`
 	// display name
-	DisplayName string `json:"displayName,omitempty"`
+	DisplayName string `json:"displayName"`
 	// environments
-	Environments []string `json:"environments,omitempty"`
+	Environments []string `json:"environments"`
 	// id
-	ID string `json:"id,omitempty"`
+	ID string `json:"id"`
 	// ISO-8601
-	LastModifiedAt string `json:"lastModifiedAt,omitempty"`
+	LastModifiedAt string `json:"lastModifiedAt"`
 	// last modified by
-	LastModifiedBy string `json:"lastModifiedBy,omitempty"`
+	LastModifiedBy string `json:"lastModifiedBy"`
 	// name
-	Name string `json:"name,omitempty"`
+	Name string `json:"name"`
 	// quota interval
-	QuotaInterval int64 `json:"quotaInterval,omitempty"`
+	QuotaInterval int64 `json:"quotaInterval"`
 	// quota limit
-	QuotaLimit int64 `json:"quotaLimit,omitempty"`
+	QuotaLimit int64 `json:"quotaLimit"`
 	// quota time unit
-	QuotaTimeUnit string `json:"quotaTimeUnit,omitempty"`
+	QuotaTimeUnit string `json:"quotaTimeUnit"`
 	// scopes
-	Scopes []string `json:"scopes,omitempty"`
+	Scopes []string `json:"scopes"`
 }
 
 type AppDetails struct {
 
 	// access type
-	AccessType string `json:"accessType,omitempty"`
+	AccessType string `json:"accessType"`
 	// api products
 	ApiProducts []string `json:"apiProducts"`
 	// app credentials
 	AppCredentials []*CredentialDetails `json:"appCredentials"`
 	// app family
-	AppFamily string `json:"appFamily,omitempty"`
+	AppFamily string `json:"appFamily"`
 	// app parent Id
-	AppParentID string `json:"appParentId,omitempty"`
+	AppParentID string `json:"appParentId"`
 	// app parent status
-	AppParentStatus string `json:"appParentStatus,omitempty"`
+	AppParentStatus string `json:"appParentStatus"`
 	// Developer or Company
-	AppType string `json:"appType,omitempty"`
+	AppType string `json:"appType"`
 	// Attributes associated with the app.
 	Attributes []common.Attribute `json:"attributes"`
 	// callback Url
-	CallbackUrl string `json:"callbackUrl,omitempty"`
+	CallbackUrl string `json:"callbackUrl"`
 	// ISO-8601
-	CreatedAt string `json:"createdAt,omitempty"`
+	CreatedAt string `json:"createdAt"`
 	// created by
-	CreatedBy string `json:"createdBy,omitempty"`
+	CreatedBy string `json:"createdBy"`
 	// display name
-	DisplayName string `json:"displayName,omitempty"`
+	DisplayName string `json:"displayName"`
 	// id
-	Id string `json:"id,omitempty"`
+	Id string `json:"id"`
 	// key expires in
-	KeyExpiresIn string `json:"keyExpiresIn,omitempty"`
+	KeyExpiresIn string `json:"keyExpiresIn"`
 	// ISO-8601
-	LastModifiedAt string `json:"lastModifiedAt,omitempty"`
+	LastModifiedAt string `json:"lastModifiedAt"`
 	// last modified by
-	LastModifiedBy string `json:"lastModifiedBy,omitempty"`
+	LastModifiedBy string `json:"lastModifiedBy"`
 	// name
-	Name string `json:"name,omitempty"`
+	Name string `json:"name"`
 	// scopes
 	Scopes []string `json:"scopes"`
 	// status
-	Status string `json:"status,omitempty"`
+	Status string `json:"status"`
 }
 
 type CredentialDetails struct {
 	// api product references
 	ApiProductReferences []string `json:"apiProductReferences"`
 	// app Id
-	AppID string `json:"appId,omitempty"`
+	AppID string `json:"appId"`
 	// app status
-	AppStatus string `json:"appStatus,omitempty"`
+	AppStatus string `json:"appStatus"`
 	// Attributes associated with the client Id.
 	Attributes []common.Attribute `json:"attributes"`
 	// consumer key
-	ConsumerKey string `json:"consumerKey,omitempty"`
+	ConsumerKey string `json:"consumerKey"`
 	// consumer secret
-	ConsumerSecret string `json:"consumerSecret,omitempty"`
+	ConsumerSecret string `json:"consumerSecret"`
 	// expires at
-	ExpiresAt string `json:"expiresAt,omitempty"`
+	ExpiresAt string `json:"expiresAt"`
 	// issued at
-	IssuedAt string `json:"issuedAt,omitempty"`
+	IssuedAt string `json:"issuedAt"`
 	// method type
-	MethodType string `json:"methodType,omitempty"`
+	MethodType string `json:"methodType"`
 	// scopes
 	Scopes []string `json:"scopes"`
 	// status
-	Status string `json:"status,omitempty"`
+	Status string `json:"status"`
 }
 
 /*
 type ApiProductReferenceDetails struct {
 	// status of the api product
-	Status         string `json:"status,omitempty"`
+	Status         string `json:"status"`
 	// name of the api product
-	ApiProduct string `json:"apiProduct,omitempty"`
+	ApiProduct string `json:"apiProduct"`
 }
 */
 type AppCredentialDetails struct {
 	// app Id
-	AppID string `json:"appId,omitempty"`
+	AppID string `json:"appId"`
 	// app name
-	AppName string `json:"appName,omitempty"`
+	AppName string `json:"appName"`
 	// Attributes associated with the app credential
 	Attributes []common.Attribute `json:"attributes"`
 	// consumer key
-	ConsumerKey string `json:"consumerKey,omitempty"`
+	ConsumerKey string `json:"consumerKey"`
 	// consumer key status
-	ConsumerKeyStatus *ConsumerKeyStatusDetails `json:"consumerKeyStatus,omitempty"`
+	ConsumerKeyStatus *ConsumerKeyStatusDetails `json:"consumerKeyStatus"`
 	// consumer secret
-	ConsumerSecret string `json:"consumerSecret,omitempty"`
+	ConsumerSecret string `json:"consumerSecret"`
 	// developer Id
-	DeveloperID string `json:"developerId,omitempty"`
+	DeveloperID string `json:"developerId"`
 	// redirect uris
 	RedirectUris []string `json:"redirectURIs"`
 	// scopes
 	Scopes []string `json:"scopes"`
 	// status
-	Status string `json:"status,omitempty"`
+	Status string `json:"status"`
 }
 
 type ConsumerKeyStatusDetails struct {
 	// app credential
-	AppCredential *CredentialDetails `json:"appCredential,omitempty"`
+	AppCredential *CredentialDetails `json:"appCredential"`
 	// app Id
-	AppID string `json:"appId,omitempty"`
+	AppID string `json:"appId"`
 	// app name
-	AppName string `json:"appName,omitempty"`
+	AppName string `json:"appName"`
 	// app status
-	AppStatus string `json:"appStatus,omitempty"`
+	AppStatus string `json:"appStatus"`
 	// app type
-	AppType string `json:"appType,omitempty"`
+	AppType string `json:"appType"`
 	// developer Id
-	DeveloperID string `json:"developerId,omitempty"`
+	DeveloperID string `json:"developerId"`
 	// developer status
-	DeveloperStatus string `json:"developerStatus,omitempty"`
+	DeveloperStatus string `json:"developerStatus"`
 	// is valid key
-	IsValidKey bool `json:"isValidKey,omitempty"`
+	IsValidKey bool `json:"isValidKey"`
 }
 
 type CompanyDetails struct {
@@ -251,36 +251,36 @@
 	// Attributes associated with the company.
 	Attributes []common.Attribute `json:"attributes"`
 	// ISO-8601
-	CreatedAt string `json:"createdAt,omitempty"`
+	CreatedAt string `json:"createdAt"`
 	// created by
-	CreatedBy string `json:"createdBy,omitempty"`
+	CreatedBy string `json:"createdBy"`
 	// display name
-	DisplayName string `json:"displayName,omitempty"`
+	DisplayName string `json:"displayName"`
 	// id
-	ID string `json:"id,omitempty"`
+	ID string `json:"id"`
 	// ISO-8601
-	LastModifiedAt string `json:"lastModifiedAt,omitempty"`
+	LastModifiedAt string `json:"lastModifiedAt"`
 	// last modified by
-	LastModifiedBy string `json:"lastModifiedBy,omitempty"`
+	LastModifiedBy string `json:"lastModifiedBy"`
 	// name
-	Name string `json:"name,omitempty"`
+	Name string `json:"name"`
 	// status
-	Status string `json:"status,omitempty"`
+	Status string `json:"status"`
 }
 
 type CompanyDeveloperDetails struct {
 	// company name
-	CompanyName string `json:"companyName,omitempty"`
+	CompanyName string `json:"companyName"`
 	// ISO-8601
-	CreatedAt string `json:"createdAt,omitempty"`
+	CreatedAt string `json:"createdAt"`
 	// created by
-	CreatedBy string `json:"createdBy,omitempty"`
+	CreatedBy string `json:"createdBy"`
 	// developer email
-	DeveloperEmail string `json:"developerEmail,omitempty"`
+	DeveloperEmail string `json:"developerEmail"`
 	// ISO-8601
-	LastModifiedAt string `json:"lastModifiedAt,omitempty"`
+	LastModifiedAt string `json:"lastModifiedAt"`
 	// last modified by
-	LastModifiedBy string `json:"lastModifiedBy,omitempty"`
+	LastModifiedBy string `json:"lastModifiedBy"`
 	// roles
 	Roles []string `json:"roles"`
 }
@@ -293,25 +293,25 @@
 	// companies
 	Companies []string `json:"companies"`
 	// ISO-8601
-	CreatedAt string `json:"createdAt,omitempty"`
+	CreatedAt string `json:"createdAt"`
 	// created by
-	CreatedBy string `json:"createdBy,omitempty"`
+	CreatedBy string `json:"createdBy"`
 	// email
-	Email string `json:"email,omitempty"`
+	Email string `json:"email"`
 	// first name
-	FirstName string `json:"firstName,omitempty"`
+	FirstName string `json:"firstName"`
 	// id
-	ID string `json:"id,omitempty"`
+	ID string `json:"id"`
 	// ISO-8601
-	LastModifiedAt string `json:"lastModifiedAt,omitempty"`
+	LastModifiedAt string `json:"lastModifiedAt"`
 	// last modified by
-	LastModifiedBy string `json:"lastModifiedBy,omitempty"`
+	LastModifiedBy string `json:"lastModifiedBy"`
 	// last name
-	LastName string `json:"lastName,omitempty"`
+	LastName string `json:"lastName"`
 	// password
-	Password string `json:"password,omitempty"`
+	Password string `json:"password"`
 	// status
-	Status string `json:"status,omitempty"`
+	Status string `json:"status"`
 	// user name
-	UserName string `json:"userName,omitempty"`
+	UserName string `json:"userName"`
 }
