// Code generated by msgraph.go/gen DO NOT EDIT.

package msgraph

import "time"

// EmbeddedSIMActivationCode undocumented
type EmbeddedSIMActivationCode struct {
	// Object is the base model of EmbeddedSIMActivationCode
	Object
	// IntegratedCircuitCardIdentifier The Integrated Circuit Card Identifier (ICCID) for this embedded SIM activation code as provided by the mobile operator.
	IntegratedCircuitCardIdentifier *string `json:"integratedCircuitCardIdentifier,omitempty"`
	// MatchingIdentifier The MatchingIdentifier (MatchingID) as specified in the GSMA Association SGP.22 RSP Technical Specification section 4.1.
	MatchingIdentifier *string `json:"matchingIdentifier,omitempty"`
	// SmdpPlusServerAddress The fully qualified domain name of the SM-DP+ server as specified in the GSM Association SPG .22 RSP Technical Specification.
	SmdpPlusServerAddress *string `json:"smdpPlusServerAddress,omitempty"`
}

// EmbeddedSIMActivationCodePool A pool represents a group of embedded SIM activation codes.
type EmbeddedSIMActivationCodePool struct {
	// Entity is the base model of EmbeddedSIMActivationCodePool
	Entity
	// DisplayName The admin defined name of the embedded SIM activation code pool.
	DisplayName *string `json:"displayName,omitempty"`
	// CreatedDateTime The time the embedded SIM activation code pool was created. Generated service side.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// ModifiedDateTime The time the embedded SIM activation code pool was last modified. Updated service side.
	ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
	// ActivationCodes The activation codes which belong to this pool. This navigation property is used to post activation codes to Intune but cannot be used to read activation codes from Intune.
	ActivationCodes []EmbeddedSIMActivationCode `json:"activationCodes,omitempty"`
	// ActivationCodeCount The total count of activation codes which belong to this pool.
	ActivationCodeCount *int `json:"activationCodeCount,omitempty"`
	// Assignments undocumented
	Assignments []EmbeddedSIMActivationCodePoolAssignment `json:"assignments,omitempty"`
	// DeviceStates undocumented
	DeviceStates []EmbeddedSIMDeviceState `json:"deviceStates,omitempty"`
}

// EmbeddedSIMActivationCodePoolAssignment The embedded SIM activation code pool assignment entity assigns a specific embeddedSIMActivationCodePool to an AAD device group.
type EmbeddedSIMActivationCodePoolAssignment struct {
	// Entity is the base model of EmbeddedSIMActivationCodePoolAssignment
	Entity
	// Target The type of groups targeted by the embedded SIM activation code pool.
	Target *DeviceAndAppManagementAssignmentTarget `json:"target,omitempty"`
}

// EmbeddedSIMDeviceState Describes the embedded SIM activation code deployment state in relation to a device.
type EmbeddedSIMDeviceState struct {
	// Entity is the base model of EmbeddedSIMDeviceState
	Entity
	// CreatedDateTime The time the embedded SIM device status was created. Generated service side.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// ModifiedDateTime The time the embedded SIM device status was last modified. Updated service side.
	ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
	// LastSyncDateTime The time the embedded SIM device last checked in. Updated service side.
	LastSyncDateTime *time.Time `json:"lastSyncDateTime,omitempty"`
	// UniversalIntegratedCircuitCardIdentifier The Universal Integrated Circuit Card Identifier (UICCID) identifying the hardware onto which a profile is to be deployed.
	UniversalIntegratedCircuitCardIdentifier *string `json:"universalIntegratedCircuitCardIdentifier,omitempty"`
	// DeviceName Device name to which the subscription was provisioned e.g. DESKTOP-JOE
	DeviceName *string `json:"deviceName,omitempty"`
	// UserName Username which the subscription was provisioned to e.g. joe@contoso.com
	UserName *string `json:"userName,omitempty"`
	// State The state of the profile operation applied to the device.
	State *EmbeddedSIMDeviceStateValue `json:"state,omitempty"`
	// StateDetails String description of the provisioning state.
	StateDetails *string `json:"stateDetails,omitempty"`
}